RMP-SMART操作文档
1.基本环境
系统环境:
Ubuntu 18.04.6 LTS
硬件环境:
从机:thinkpad E480
处理器:Intel® Core™ i5-8250U CPU @ 1.60GHz × 8
显卡:Intel® UHD Graphics 620 (KBL GT2)
主机:NVIDIA计算板
运动底盘:RMP Lite 220底盘
传感器:G5激光雷达
连接与通信:
激光雷达和底盘连接到计算板USB端口上,计算板作为主机,由小车底盘引出接口供电,PC作为从机,连接显示屏并发送指令
2.ROS的安装
第二章内容参考了ROS官方文档:在 Ubuntu 中安装 ROS Melodic
主从机上均需安装ROS环境和相关功能包
2.1配置Ubuntu软件仓库
配置Ubuntu软件仓库(repositories)以允许使用“restricted”“universe”和“multiverse”存储库。
打开Ubuntu软件和更新
,确保勾选以下选项:
2.2设置sources.list
设置电脑以安装来自packages.ros.org
的软件。
sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
若下载速度缓慢,推荐就近选择一个镜像源,重新执行命令。例如:更换为清华大学镜像源,使用下面的命令设置:
sudo sh -c '. /etc/lsb-release && echo "deb http://mirrors.tuna.tsinghua.edu.cn/ros/ubuntu/ `lsb_release -cs` main" > /etc/apt/sources.list.d/ros-latest.list'
2.3设置密钥
sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
若无法连接到密钥服务器,可以尝试替换上面命令中的 hkp://keyserver.ubuntu.com:80
为 hkp://pgp.mit.edu:80
。
2.4安装
首先,确保Debian包索引是最新的:
sudo apt update
在 ROS 中有很多不同的库和工具,推荐使用完整安装命令:
sudo apt install ros-melodic-desktop-full
2.5初始化 rosdep
在使用 ROS 之前,需要初始化 rosdep
:
sudo rosdep init
rosdep update
如果因为网络问题无法访问raw.githubusercontent.com
,可以尝试如下解决方案:
1.安装托管服务
sudo apt-get install python3-pip
//根据ros版本不同,可能不支持python3,替换成如下指令
//sudo apt-get install python-pip
//执行以下命令
sudo pip install rosdepc
//如果sudo pip install rosdepc没有成功,执行下面的命令
//sudo pip3 install rosdepc
2.执行初始化和更新命令
sudo rosdepc init
rosdepc update
2.6设置环境
将 ROS 环境变量自动添加到新 bash,每次打开终端会自动更新环境:
echo "source /opt/ros/melodic/setup.bash" >> ~/.bashrc
source ~/.bashrc
2.7安装构建ROS包的依赖项
sudo apt-get install python-rosinstall python-rosinstall-generator python-wstool build-essential
3.测试安装并创建工作空间
3.1ROS测试
新建一个终端,执行roscore
,如果出现:
started core service [/rosout]
表明安装成功
3.2创建工作空间
新建一个终端,执行以下命令:
mkdir -p ~/catkin_ws/src
cd ~/catkin_ws/
catkin_make
将工作空间路径添加到环境变量中,这样不用每次打开终端手动更新环境变量
echo "source ~/catkin_ws/devel/setup.bash" >> ~/.bashrc
source ~/.bashrc
4安装功能包
安装定位、导航、建图需要的相关功能包
4.1安装依赖项
安装 libsdl1.2-dev
和libsdl-image1.2-dev
依赖项,新建一个终端,执行以下命令:
sudo apt-get install libsdl1.2-dev libsdl-image1.2-dev
4.2下载源码
新建一个终端,执行以下命令,进入工作空间:
cd ~/catkin_ws/src/
执行以下命令,下载源代码
git clone https://github.com/ros/geometry2.git
//navigation有多个分支,需要挑选合适版本,错误版本编译无法通过
git clone -b melodic-devel https://github.com/ros-planning/navigation.git
git clone https://github.com/ros-planning/navigation_msgs.git
git clone https://github.com/ros-perception/slam_gmapping.git
git clone https://github.com/ros-perception/openslam_gmapping
4.3编译
根据平台种类不同,在 Segway_ws/src/segwayrmp/Cmakelists.txt 中根据使用的平台进行调整
${
PROJECT_SOURCE_DIR}/lib/libctrl_arm64-v8a.so # x86_64平台则注释该行
${
PROJECT_SOURCE_DIR}/lib/libctrl_x86_64.so # arm下则注释该行
执行编译
cd ~/catkin_ws
catkin_make
5. 安装雷达SDK和驱动
第5章参考文档
5.1安装CMake
打开终端,输入以下命令:
sudo apt install cmake pkg-config
sudo apt-get install python swig
sudo apt-get install python-pip
5.2构建YDLidar-SDK
git clone https://github.com/YDLIDAR/YDLidar-SDK.git
cd YDLidar-SDK/build
cmake ..
make
sudo make install
5.3下载ydlidar_ros_driver
执行以下命令
cd ~/catkin_ws/src
git clone https://github.com/YDLIDAR/ydlidar_ros_driver.git ydlidar_ws/src/ydlidar_ros_driver
catkin_make
如果出现如下错误,请先安装YDLIDAR/YDLidar-SDK
需要确定小车底盘坐标系和雷达坐标系的相对位置,小车底盘坐标原点位于两轮连线中点,如图所示
可将雷达放置在原点位置,并保持雷达第一帧扫描指向与底盘x坐标轴保持同一方向,相应的需要修改lidar.launch
文件中args="0.0 0.0 0.0 0.0 0.0 0.0 /base_link /laser_frame 40"
<node pkg="tf" type="static_transform_publisher" name="base_link_to_laser_frame"
args="0.0 0.0 0.0 0.0 0.0 0.0 /base_link /laser_frame 40" />
args="x_d y_d z_d x_th y_th z_th /frame1 /frame2 frequency"
表示在此TF变换中,/frame1与/frame2完全重合,x、y、z方向的距离偏移分别为x_d、y_d、z_d,x、y、z轴的旋转偏移分别为x_th、y_th、z_th,如果雷达摆在其它位置,测量得到距离和角度后,修改参数即可
更新环境
source ./devel/setup.sh
6.主从机通信配置
6.1.IP设置
一个主机,多个从机,每个先都设定为同一网段下固定IP。
6.2.修改~/.bashrc文件
主从机都需要修改~/.bashrc文件,均添加以下内容:
export ROS_MASTER_URI=http://主机IP:11311
export ROS_IP=本机IP
6.3.修改/etc/hosts文件
主机添加:
从机IP 从机hostname
从机添加:
主机IP 主机hostname
6.4.测试
主机运行
roscore
rosrun turtlesim turtlesim_node
从机运行:
rosrun turtlesim turtle_teleop_key
如果能在从机上控制主机上的小乌龟运动,说明配置成功
7.启动小车功能
7.1.基础功能
首先在计算板上打开终端,输入以下命令
roslaunch segwayrmp init_rmp.launch//启动小车节点
roslaunch segwayrmp enable.launch//启动小车使能常开节点
roslaunch segwayrmp base_func.launch//启动odom_tf、lidar节点,雷达可能堵转,手动令其开始旋转
运行后界面如图所示
此时雷达开始旋转,底盘灯由黄色变为绿色
各个launch文件具体内容如下:
init_rmp.launch
:
<launch>
<!--设定工作空间为RMP-->
<group ns="RMP">
<!--启动SmartCar节点-->
<node pkg="segwayrmp" type="SmartCar" name="SmartCar" args="" output="screen"/>
<!--设定偏置系数-->
<param name="distance_offset" type="double" value="1.072" />
<param name=