Please ask about problems and questions regarding this tutorial on answers.ros.org. Don't forget to include in your question the link to this page, the versions of your OS & ROS, and also add appropriate tags. |
安装与使用
Description: 在ROS kinetic 环境下使用Caster MomaKeywords: 智科特机器人 Caster Moma
Tutorial Level: INTERMEDIATE
Contents
本教程主要包含安装与使用方法,熟悉以下操作可以让你初步使用Caster,这在将来的开发中会是很有帮助的。
安装
1. 拷贝github存储库
cd ~/catkin_ws/src git clone -b v2 https://github.com/I-Quotient-Robotics/caster_man_ros
2. 安装关联库
sudo apt-get install python-rosinstall cd caster_man_ros/rosinstall_file rosinstall ~/workspace/src/ caster_man_gen3_ssh.rosinstall
3. 编译
cd .. || catkin_make
ROS功能启动
1. 使用CTRL+ALT+T启动一个新终端
2. 根据机械臂形态,在终端中输入如下指令之一,启动CasterMoma的控制程序,此launch文件会启动CasterMoma中所有的执行器和传感器
# Kinova Gen3手臂 roslaunch caster_moma_bringup caster_moma_gen3_bringup.launch # Kinova j2s6s300 手臂 roslaunch caster_moma_bringup caster_moma_j2s6s200_bringup.launch # Kinova j2n6s300 手臂 roslaunch caster_moma_bringup caster_moma_j2n6s200_bringup.launch
诊断信息和点云信息显示
1. 在终端中,使用CTRL+SHIFT+T启动一个新终端标签页,输入如下指令,使用Rviz来查看CasterMoma传感器的信息和点云视图
roslaunch caster_moma_viz display.launch
2. Rviz视图
3.机器人诊断视图信息
手柄控制
Caster可以使用手柄进行遥控,具体按键功能参考手柄按键说明图
1. 参考ROS功能启动,启动Caster的ROS功能
2. 根据手柄按键说明图,操控Caster进行移动
3. 对于移动操作,只有在按下安全键的时候,信号才会被Caster接收到。
云台控制
使用如下指令可以控制云台的俯仰
# 归零 rostopic pub /pan_tilt_driver_node/pan_tilt_cmd pan_tilt_msgs/PanTiltCmd "{yaw:0.0, pitch:0.0, speed:20.0}" # 旋转和俯仰同时动作 rostopic pub /paiitilt_driver_node/pan_tilt_cmd pan_tilt_msgs/PanTiltCmd "{yaw:40.0, pitch:40.0, speed:20.0}"
躯干控制
使用如下指令可以控制躯干的升降
# 躯干降到最低位 rostopic pub /caster/body_controller/command std_msgs/Float64 "data: 0.0" # 躯干升到最高位 rostopic pub /caster/body_controller/command std_msgs/Float64 "data: 0.4"
创建地图
1. 参考ROS功能启动,启动Caster的ROS功能
2. 在终端中,使用CTRL+SHIFT+T启动一个新终端标签页,执行如下指令,启动建图
roslaunch caster_navigation gmapping.launch
3. 在终端中,使用CTRL+SHIFT+T启动一个新终端标签页,运行如下指令,启动建图界面
roslaunch caster_moma_viz display.launch type:=gmapping
4. 拔掉HDMI线,清空机器人周围的区域
5. 参考手柄控制,启动手柄遥控,操控Caster完成地图建立
6. 建立完成后,重新接上显示器,开启一个新的终端,输入如下指令保存地图
# 使用map_saver保存地图, 扫描后的地图推荐存放至caster_navigation的map rosrun map_server map_saver -f $(rospack find caster_navigation)/map/[地图名称]
注意:在建立地图时,请勿将充电桩放置于地面上,地图建立完成后再放置充电桩
定位导航
定位导航
1. 参考ROS功能启动,启动Caster的ROS功能
2. 参考创建地图,完成地图创建
3. 在终端中,使用CTRL+SHIFT+T启动一个新终端标签页,执行如下指令,启动导航功能
# 使用map_file参数指定要加载的地图,例如加载home地图 roslaunch caster_navigation navigation.launch map_file:=$(rospack find caster_navigation)/map/home.yaml
4. 在终端中,使用CTRL+SHIFT+T启动一个新终端标签页,运行Rviz,用来监控机器人状态
roslaunch caster_moma_viz display.launch type:=navigation
5. 在Rviz中,设定机器人的初始位置
6. 根据需求设定机器人目标点,进行运动
机械臂控制
1. 参考ROS功能启动,启动Caster的ROS功能
2. 在终端中,使用CTRL+SHIFT+T启动一个新终端标签页,根据机械臂型号和需求,选择如下指令启动机械臂的MoveIt控制功能,或仿真(仿真不需要启动Caster的ROS功能)。
# 6自由度-2指-球关节 机械臂仿真 roslaunch caster_moma_j2s6s200_config demo.launch # 6自由度-2指-球关节 机械臂真机 roslaunch caster_moma_j2s6s200_config execute.launch # 6自由度-2指-非球关节 机械臂仿真 roslaunch caster_moma_j2n6s200_config demo.launch # 6自由度-2指-非球关节 机械臂真机 roslaunch caster_momn_j2n6s200_config execute.launch # Gen3 7自由度-2指 机械臂仿真 roslaunch caster_moma_gen3_7d_2f85_moveit_config demo.launch # Gen3 7自由度-2指 机械臂真机 roslaunch caster_moma_gen3_7d_2f85_moveit_config execute.launch
3. Moveit视图
自动充电
1. 参考自动充电原理和配置,完成对充电桩位置的设定
2. 在终端中,使用CTRL+SHIFT+T启动一个新终端标签页,运行如下指令,启动自动充电功能
roslaunch caster_auto_charge auto_charge.launch
3. 按下手柄的START按键,Caster开始执行自动充电程序
4. 充电完成后,按下手柄的BACK按键,Caster从充电桩中推出
注意:在Caster位于充电桩内时,勿使用导航功能,以免损坏Caster的受电模块。要使用导航功能,请确保Caster正确从充电桩中推出
前期准备
网络信息
基础信息
网关 |
192.168.33.0/24 |
设备列表
设备 |
主机名 |
IP地址 |
Caster-PC |
caster-pc |
192.168.33.5 |
Hokuyo LX-20 |
无 |
192.168.33.7 |
外部设备设置
地址 |
192.168.33.x |
子网掩码 |
255.255.255.0 |
网络连接
现需一台装有ROS Kinetic的Ubuntu电脑,下文简称外部PC,将网线连接到底盘的交换机上,并参考上文的网路信息配置,设置外部PC的IP地址,使用PING指令,测试和Caster-PC的网络通信情况。
测试网络
1. 使用IP地址测试
ping 192.168.33.5
2. 使用域名测试
ping caster-pc.local
设置外部设备
echo 'export ROS_MASTER_URI="http://caster-pc.local:11311"' >> ~/.bashrc
按照以上操作完成通信连接,然后重启终端。