A ROS2 description package for the IC2D platform (Impedance Control in 2 Dimensions)
This package contains the ROS2 description (URDF/xacro files) of IC2D (Impedance Control in 2 Dimensions). The files were generated using a simplified version of the CAD model available on this other repo and the solidworks_urdf_exporter. For simulation purposes, the package includes the virtual_spring_damper
node, that simulates a spring-damper connection between the two moving platforms, with customizable undeformed length, stiffness and damping.
The package also has 2 launch files:
- rsp.launch.py: robot state publisher. Simply loads the URDF onto the
/robot_description
topic. Can be visualized in Rviz2 or Foxglove.
Arguments (pass arguments as '<name>:=<value>'):
'use_sim_time':
Use sim time if true
(default: 'true')
'joint_1_config':
Joint 1 configuration. Possible values: "linmot", "hydraulic", "fixed"
(default: 'linmot')
'joint_2_config':
Joint 2 configuration. Possible values: "linmot", "hydraulic", "fixed"
(default: 'linmot')
'link_1_mass':
Link 1 total mass
(default: '18.505')
'link_2_mass':
Link 2 total mass
(default: '7.3822')
- gz_sim.launch.py: launches the robot in a simulated environment (Ignition Gazebo). Currently loads a simple joint position controller (from ros2_controllers) for preliminary testing purposes.
Arguments (pass arguments as '<name>:=<value>'):
'undeformed_length':
Undeformed length of the spring
(default: '0.3')
'stiffness':
Stiffness of the spring
(default: '6000.0')
'damping':
Damping coefficient of the damper
(default: '100.0')
'use_sim_time':
Use sim time if true
(default: 'true')
'joint_1_config':
Joint 1 configuration. Possible values: "linmot", "hydraulic", "fixed"
(default: 'linmot')
'joint_2_config':
Joint 2 configuration. Possible values: "linmot", "hydraulic", "fixed"
(default: 'linmot')
'link_1_mass':
Link 1 total mass
(default: '18.505')
'link_2_mass':
Link 2 total mass
(default: '7.3822')
This repo is a standard ROS2 package (ament_cmake).
- A ROS2 workspace (colcon)
- See this tutorial to learn how to create your own workspace.
As mentioned above, this repo is a standard ROS2 package. Thus, you simply have to clone it inside your workspace's src directory.
cd <path_to_your_ros2_ws>/src
git clone https://github.com/leggedrobotics-usp/ic2d_description.git
Then, use colcon to build.
cd <path_to_your_ros2_ws>
colcon build --symlink-install
Use the provided launch files to test basic robot visualization and Gazebo simulation. Parameters are listed above (generated running ros2 launch ic2d_description <launch_file>.launch.py --show-args
). Use the launch and URDF files layout as a starting point to load different controllers and use cases.
The virtual_spring_damper
node is executed with command line arguments as follows:
ros2 run ic2d_description virtual_spring_damper undeformed_length=<value> stiffness:=<value> damping:=<value>
Want something more on the robot description? Open an Enhancement issue describing it.
- Fork the repo
- Check out a new branch based and name it to what you intend to do:
-
git checkout -b BRANCH_NAME
-
- Commit your changes
- Please provide a git message that explains what you've done;
- Commit to the forked repository.
git commit -m "A short and relevant message"
- Push to the branch
-
git push origin BRANCH_NAME
-
- Make a pull request!
Victor T. N. 🤖
Made with ❤️ by @Vtn21
Elisa G. Vergamini
Designer of IC2D