0、本机基础环境:
CUDA:11.4 Jetpack:5.1.2 L4T:35.4.1 Ubuntu:20.04 focal
1、ROS 环境构建:
主要使用的是小鱼一键安装,可参考链接主页 | 鱼香ROS
wget http://fishros.com/install -O fishros && . fishros
我首先安装的是ROS2 foxy,然后安装的ROS1 noetic. 在安装ROS1的过程中出现了一点小问题:报错 bash: /opt/ros/noetic/setup.bash: No such file or directory 找不到文件
然后参考别人的安装过程:Ubuntu20.04 ROS-noetic安装与使用(原创)_ros安装noetic-优快云博客
在用一键安装ros1前,执行了这句命令:
# 设置软件安装源
sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
再执行 一键安装就可以啦。然后更改 .bashrc 文件进行切换ROS环境
# 编辑
sudo gedit ~/.bashrc
# 增加如下代码
echo "ros noetic(1) or ros2 foxy(2)?"
read edition
if [ "$edition" -eq "1" ];then
source /opt/ros/noetic/setup.bash
else
source /opt/ros/foxy/setup.bash
source ~/ros2_ws/install/local_setup.sh #其它包
fi
然后 source ~/.bashrc
打开新终端可以看到:
2、Grid Map 配置 (下面都是基于ROS1)
本博客采用的是源码安装,也可以采用直接安装到ros1环境中:
sudo apt-get install ros-noetic-grid-map
源码安装:
代码链接:https://github.com/ANYbotics/grid_map
安装依赖:
sudo apt-get install libeigen3-dev
编译:
cd catkin_ws/src
git clone https://github.com/anybotics/grid_map.git
cd ../
catkin_make
源码安装会出现一些包找不到的情况,按照提示安装指定的包就可以,参考elevation_mapping 安装辛酸史_kindr 安装-优快云博客。比如说octomap-msgs找不到
sudo apt-get install ros-kinetic-octomap-msgs
然后出现一个经常会发生的报错,提示没有message_logger,则下载源码编译message_logger ,https://github.com/ANYbotics/message_logger
git clone https://github.com/ANYbotics/message_logger.git
cd message_logger && mkdir build && cd build
cmake .. && make -j12
sudo make install
编译完成后,仍显示没有该包,找不到指定包的位置,这时候可以考虑软链接一下:
sudo ln -s /usr/local/share/message_logger /opt/ros/noetic/share/message_logger
就可以编译成功啦。
3、Elevation Mapping 配置
先放链接:https://github.com/ANYbotics/elevation_mapping
根据官方说明安装依赖的包:
Dependencies
This software is built on the Robotic Operating System (ROS), which needs to be installed first. Additionally, the Robot-Centric Elevation Mapping depends on following software:
- Grid Map (grid map library for mobile robots)
- kindr (kinematics and dynamics library for robotics),
- kindr_ros (ROS wrapper for kindr),
- Point Cloud Library (PCL) (point cloud processing),
- Eigen (linear algebra library).
上面我们已安装好Grid Map 按照链接要求,安装Kindr,类似上面的message_logger,最后编译找不到包,同样采用软链接。
PCL 安装可以参考网上的链接:elevation_mapping 安装辛酸史_kindr 安装-优快云博客
当依赖安装完成后,进行 Elevation Mapping 的编译。 网上说了一些在同一个空间内,容易混淆,这里直接给出我安装的目录关系。
均在我设置的ros1_ws/src中,然后按照指定编译顺序编译。
cd ros1_ws/src
git clone https://github.com/anybotics/elevation_mapping.git
cd ../
catkin_make
然后根据遇到的问题再解决,主要解决办法类是上面说的,不是安装对应的包就是编译对应的包,找不到再更改Cmaketxt文件,或者软链接。
OK ,到这里应该就配置好了Elevation Mapping 。
4、Elevation Mapping 仿真实战
基于python3.8环境;
TurtleBot3 Waffle Simulation
A running example is provided, making use of the Turtlebot3 simulation environment. This example can be used to test elevation mapping, as a starting point for further integration.
To start with, the Turtlebot3 simulation dependencies need to be installed:
sudo apt install ros-melodic-turtlebot3*
The elevation mapping demo together with the turtlebot3 simulation can be started with
roslaunch elevation_mapping_demos turtlesim3_waffle_demo.launch
To control the robot with a keyboard, a new terminal window needs to be opened (remember to source your ROS environment). Then run
export TURTLEBOT3_MODEL=waffle
roslaunch turtlebot3_teleop turtlebot3_teleop_key.launch
Velocity inputs can be sent to the robot by pressing the keys a
, w
,d
, x
. To stop the robot completely, press s
.
ok,这里应该就可以看到如下图片啦,就可以学习相关的配置参数啦。新手入门,欢迎交流。
rostopic list 一下,看看elevation mapping包的话题和仿真环境中的话题: