franka_ros2不支持Windows
先决条件
ross 2 foxy 安装(ROS - Foxy -desktop)
PREEMPT_RT内核(可选,但强烈推荐)。
系统范围的libfranka安装。以下是一个简单的例子:
sudo apt install -y libpoco-dev libeigen3-dev git clone https://github.com/frankaemika/libfranka.git --recursive cd libfranka mkdir build && cd build cmake -DCMAKE_BUILD_TYPE=Release -DBUILD_TESTS=OFF .. cmake --build . -j$(nproc) cpack -G DEB sudo dpkg -i libfranka-*.deb
可选的. bashrc设置
要获得彩色警告和错误信息,您可以export RCUTILS_COLORIZED_OUTPUT=1放入.bashrc中。
如果你的系统语言没有设置为美式英语,你应该输入它export LC_NUMERIC=en_US。UTF-8到你的。bashrc,避免问题RViz。
设置 安装要求
ros-foxy-control-msgs \ ros-foxy-xacro \ ros-foxy-angles \ ros-foxy-ros2-control \ ros-foxy-realtime-tools \ ros-foxy-control-toolbox \ ros-foxy-moveit \ ros-foxy-ros2-controllers \ ros-foxy-joint-state-publisher \ ros-foxy-joint-state-publisher-gui \ ros-foxy-ament-cmake-clang-format \ python3-colcon-common-extensions
创建一个 ROS 2 工作空间
mkdir -p ~/franka_ros2_ws/src
克隆repo并构建包:
source /opt/ros/foxy/setup.bash cd ~/franka_ros2_ws git clone https://github.com/frankaemika/franka_ros2.git src/franka_ros2 colcon build --cmake-args -DCMAKE_BUILD_TYPE=Release source install/setup.sh
MoveIt
看看一切是否正常,你可以试着在机器人上运行MoveIt示例:
ros2 launch franka_moveit_config moveit.launch.py robot_ip:=<fci-ip>
然后激活RViz中的MotionPlanning显示。
如果您没有机器人,您仍然可以通过运行虚拟硬件来测试您的设置:
ros2 launch franka_moveit_config moveit.launch.py robot_ip:=dont-care use_fake_hardware:=true
等到看到绿色Youcanstartplanningnow!然后关掉PlanningScene,然后关掉,再打开,MotionPlanning
例子控制器
这个repo附带一些位置franka_example_controllers包
默认情况下,以下启动文件将与起点一起执行。如果没有额外的起点,起点文件中可以禁止起点load_gripper:=false
Move-to-start
该控制器将机器人移动到其中home配置。
ros2 launch franka_bringup move_to_start_example_controller.launch.py robot_ip:=<fci-ip>
Gravity Compensation
这是我们拥有的最简单的控制器,也是写自己控制器的好起点。它向所有关节发送扭矩为零的指令,这意味着机器人只补偿重量。
ros2 launch franka_bringup gravity_compensation_example_controller.launch.py robot_ip:=<fci-ip>
Joint Impedance Example
这个例子以一个非常顺从的周期移动关节4和5。当它跑步时,你可以试着移动它的关节。
ros2 launch franka_bringup joint_impedance_example_controller.launch.py robot_ip:=<fci-ip>
Package Descriptions
本包含示例和基本启动文件franka.launch.py启动文件,可以用来启动机器人没有任何控制器。
当您启动以下机器人时
ros2 launch franka_bringup franka.launch.py robot_ip:=<fci-ip> use_rviz:=true
没有控制器从这里分开joint_state_broadcaster然而,与机器人的连接仍然是建立起来的,目前机器人的姿态是RViz可视化。在这种模式下,当用户按下停止按钮时,可以引导机器人。如果控制器使用此命令effort_command_interface,将使用机器人libfranka扭矩接口。例如,可以启动gravity_compensation_example_controller跑下面的程序
ros2 control load_controller --set-state start gravity_compensation_example_controller
这相当于操作gravity_compensation_example_controller.launch.py
当控制器停止运行时
ros2 control set_controller_state gravity_compensation_example_controller stop
机器人将停止转矩控制,只发送其当前状态FCI。
您现在可以选择启动相同的控制器:
ros2 control set_controller_state gravity_compensation_example_controller start
或者加载并启动不同的程序:
ros2 control load_controller --set-state start joint_impedance_example_controller