松灵课堂又开课啦!!!通过上节课内容(如何通过开源SDK控制SCOUT?),我们知道通过开源SDK,客户可以快速通过指令的形式与小车底盘进行控制,省去客户自主适配协议的过程,省去客户开发的过程。这节课,我们来聊一聊SCOUT的ROS PACKAGE 介绍和使用。
松灵课堂 | SCOUT 的ROS PACKAGE 介绍和使用
前期准备
■ 硬件准备
● CANlight can通讯模块 X1
● Thinkpad E490 笔记本电脑 X1
● AGILEX SCOUT 2.0 移动机器人底盘 X1
● AGILEX SCOUT 2.0 配套遥控器FS-i6s X1
● AGILEX SCOUT 2.0 顶部航空插座 X1
ROS package 说明
● scout_bringup: launch and configuration files to start ROS nodes
● scout_base: a ROS wrapper around Scout SDK to monitor and control the robot
● scout_sdk: Scout SDK customized for ROS
● scout_msgs: scout related message definitions
● (scout_ros: meta package for the Scout robot ROS packages)
下图是是整个ros package的一个基本框架说明,或许它可以帮助你理解整个ros package内部是如何工作的,他们之间是相互联系的。其中最底层的是移动机器人底盘,它通过can或者usart实现运行在计算平台的sdK进行基本信息的获取,具体可以根据scout_sdk了解更多信息,进而对scout_sdk,仿真部分是基于Webots,构建起的仿真环境。
其中上图中紫色部分是包含在这个ros-package中的部分。
通讯接口设置
设置串口
通常来说,usb转串口设备在Linux或者Ubuntu系统中会被自动识别为“/dev/ttyUSB0” 或者看起来类似的设备,这个可以通过指令查询。
$ ls -l /dev/ttyUSB*
如果在打开设备的操作过程中出现了"… permission denied …"的错误,有可能因为权限的原因造成的,您需要向您的用户帐户授予端口访问权限,可以通过如下指令:
$ sudo usermod -a -G dialout $USER
需要重新登录账户才能使刚刚的操作生效。
配置 CAN-TO-USB适配器
- 设置CAN转USB适配器,启用gs_usb内核模块(本指令需要搭配相应的硬件设备才可以使用,需要Linux内部版本>4.5)
$ sudo modprobe gs_usb
- 设置can设备参数
$ sudo ip link set can0 up type can bitrate 500000
- 如果在前面的步骤中没有发生错误,您可以使用以下指令查看can设备
$ ifconfig -a
4. 安装和使用can-utils来测试硬件
$ sudo apt install can-utils
- 测试指令
# receiving data from can0
$ candump can0
# send data to can0
$ cansend can0 001#1122334455667788
文件中提供了 "./scripts"文件夹里的两个脚本以便于设置。您可以在首次安装时运行“ ./setup_can2usb.bash”,并在每次拔出和重新插入适配器时运行“ ./bringup_can2usb.bash”以启动设备。
ROS package 的基础使用
- 安装 ROS packages 依赖
$ sudo apt install ros-melodic-teleop-twist-keyboard
如果你使用是 Kinetic版本,把上述指令中的“melodic” 改成 “kinetic” 即可。
- 将scout ros package 下载至的您的catkin 工作空间,并编译
(下面的操作是假定你的catkin编译工作空间在: ~/catkin_ws/src 目录下)
$ cd ~/catkin_ws/src
$ git clone https://github.com/westonrobot/scout_ros.git
-
由于本教程中不涉及仿真内容,故需要将webots 部分文件及其包含的代码删除。其文件为scout_webots_sim,将其删除即可。
-
编译scout ros
$ cd ..
$ catkin_make
5. 启动 ROS nodes
● 开始 the base node
$ roslaunch scout_bringup scout_minimal.launch
如果您选择用串口:
$ roslaunch scout_bringup scout_minimal_uart.launch
● 启动 keyboard tele-op节点
$ roslaunch scout_bringup scout_teleop_keyboard.launch
安全注意事项:
键盘默认命令值很高,请确保在开始使用键盘控制机器人之前降低速度命令!必要时,请准备好遥控器以接管控制。
本次课堂给大家初步介绍了 ROS 和 ROS package 的基础使用,大家可以通过这节课学习到如何使用键盘控制底盘,给底盘发送指令。下一节课,我们将给大家讲解 SCOUT 在 ROS 环境下的仿真,看到SCOUT更多的开发可行性。