(!) 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 Moma

Keywords: 智科特机器人 Caster Moma

Tutorial Level: INTERMEDIATE

本教程主要包含安装与使用方法,熟悉以下操作可以让你初步使用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

按照以上操作完成通信连接,然后重启终端。

Wiki: Robots/Caster_Moma/Tutorials/Installation and Usage(cn) (last edited 2020-07-23 09:01:09 by hangliu)