franka_gazebo
重要
franka_description 的最低版本要求为 0.3.0。你可以从 https://github.com/frankarobotics/franka_description 克隆该包。
一个将 Franka ROS 2 与 Gazebo 仿真器集成的项目。
启动 RViz + Gazebo
启动一个示例,同时打开 RViz 和 Gazebo 并显示机器人:
ros2 launch franka_gazebo_bringup visualize_franka_robot.launch.py
如果想显示另一台机器人,可以定义 arm_id:
ros2 launch franka_gazebo_bringup visualize_franka_robot.launch.py arm_id:=fp3
如果想启动包含 franka_hand 的仿真:
ros2 launch franka_gazebo_bringup visualize_franka_robot.launch.py load_gripper:=true franka_hand:='franka_hand'
Gazebo 中的关节速度控制示例
在开始之前,请确保已构建 franka_example_controllers 和 franka_description 包。franka_description 的最低版本要求为 0.3.0。
colcon build --packages-select franka_example_controllers
现在可以使用 Gazebo 仿真器启动速度控制示例。
ros2 launch franka_gazebo_bringup gazebo_joint_velocity_controller_example.launch.py load_gripper:=true franka_hand:='franka_hand'
请注意,夹爪关节在使用关节速度控制器时存在 bug。如果你需要控制夹爪,请改用关节位置接口。
Gazebo 中的关节位置控制示例
要运行关节位置控制示例,需要先安装关节速度控制章节中列出的必要软件。
然后可以使用以下命令运行。
ros2 launch franka_gazebo_bringup gazebo_joint_position_controller_example.launch.py load_gripper:=true franka_hand:='franka_hand'
Gazebo 中的关节阻抗控制示例
要运行力矩控制示例,需要编译位于 franka_gazebo 下的 franka_ign_ros2_control 包。可以使用以下命令进行编译。
colcon build --packages-select franka_ign_ros2_control
然后加载你的工作空间环境。
source install/setup.sh
接着可以运行阻抗控制示例。
ros2 launch franka_gazebo_bringup gazebo_joint_impedance_controller_example.launch.py load_gripper:=true franka_hand:='franka_hand'
故障排查
如果遇到 Gazebo 无法找到模型文件的情况,请尝试将工作空间路径加入环境变量。例如:
export GZ_SIM_RESOURCE_PATH=${GZ_SIM_RESOURCE_PATH}:/workspaces/src/