description — Robot Model Assets¶
The description package holds all ** kinematic and simulation assets** for the
fishing arm: URDF/xacro, MuJoCo MJCF, and STL meshes.
Source: software/src/description/
Auto-generated tables: description
There is no runtime Python node — this package is consumed at launch time when xacro generates the URDF and when MuJoCo loads the MJCF scene.
Asset inventory¶
Asset |
Path |
Used by |
|---|---|---|
Xacro macro |
|
|
Sim URDF |
|
Preprocessed reference |
HW URDF |
|
Preprocessed reference |
MJCF scene |
|
|
Meshes |
|
Visual/collision geometry |
Kinematic tree (both modes)¶
flowchart TB
BL["base_link"]
L1["Link_1"]
L2["Link_2"]
RT["rod_tip_link"]
BL -->|"Joint_1 revolute (yaw)"| L1
L1 -->|"Joint_2 revolute (pitch)"| L2
L2 -->|"rod_tip_joint fixed"| RT
Joint |
Type |
Axis |
ros2_control interfaces |
|---|---|---|---|
|
revolute |
Z |
position cmd; pos/vel/effort state |
|
revolute |
Y |
position cmd; pos/vel/effort state |
|
fixed |
— |
Defines load cell frame |
Simulation adds:
Joint |
Type |
Purpose |
|---|---|---|
|
prismatic |
Virtual fish slide DOF |
|
— |
Fish body frame |
The use_sim xacro switch¶
fishing-robot.urdf.xacro accepts:
Argument |
Default |
Effect |
|---|---|---|
|
|
Select hardware plugin and sim-only joints/sensors |
|
|
MuJoCo viewer visibility (sim only) |
Simulation block (use_sim:=true)¶
<plugin>mujoco_ros2_control/MujocoSystemInterface</plugin>
<param name="mujoco_model">.../fishing-robot_sim.xml</param>
<param name="initial_keyframe">starting_pose</param>
<param name="headless">...</param>
Additional ros2_control entries:
fish_swimjoint with effort command interfacetension_sensorFTS sensor mapped from MJCFtension_sensorsensor
Hardware block (use_sim:=false)¶
<plugin>dynamixel_hardware/DynamixelHardware</plugin>
<param name="usb_port">/dev/ttyUSB0</param>
<param name="baud_rate">57600</param>
No fish joint, no FTS sensor — only Joint_1 and Joint_2.
MJCF simulation scene¶
fishing-robot_sim.xml defines:
Arm bodies matching URDF kinematics
Line tendon between rod tip and fish (stiffness, rest length, damping — must match sensors — Line Tension Sensing
sim_line_*parameters)tension_sensorforce/torque sensor at rod tipfish_forcemotor onfish_swimstarting_posekeyframe applied on boot
The MuJoCo plugin reads the MJCF path from the URDF <param> tag — no separate
launch argument needed.
ros2_control joint ↔ Dynamixel mapping¶
Joint |
Dynamixel ID |
Limits |
|---|---|---|
|
1 |
±π rad |
|
2 |
±π rad |
Effort limit: 2.5 N·m; velocity limit: 5.76 rad/s (from URDF).
Interactions¶
Package |
How it uses |
|---|---|
Processes xacro with |
|
|
Loads MJCF, steps physics, exposes sim joints/sensors |
|
Maps URDF joints to USB servos |
TF frame names; tendon parameter consistency |
|
Fish joint exists in sim URDF/MJCF |
|
MJCF path for animation renderer |