在Jetson Nano上安装ROS Melodic,教程如下:Jetson Nano安装ROS Melodic_jetson 安装ros密钥-CSDN博客文章浏览阅读701次。Jetson Nano Ubuntu18.04安装ROS Melodic..._jetson 安装ros密钥https://blog.csdn.net/weixin_43994752/article/details/123541500?spm=1001.2014.3001.5502
一、realsense SDK和realsense-ros安装
(一)安装realsense SDK
1.下载source
git clone https://github.com/IntelRealSense/librealsense
cd librealsense
2.安装依赖项
sudo apt-get install libudev-dev pkg-config libgtk-3-dev
sudo apt-get install libusb-1.0-0-dev pkg-config
sudo apt-get install libglfw3-dev
sudo apt-get install libssl-dev
3.安装权限脚本
sudo cp config/99-realsense-libusb.rules /etc/udev/rules.d/
sudo udevadm control --reload-rules && udevadm trigger
4.编译安装
mkdir build
cd build
cmake ../ -DBUILD_EXAMPLES=true
make
sudo make install
5.测试
进入librealsense/build/examples/capture,测试效果:
./rs-capture
或直接使用realsense-viewer工具查看效果:
realsense-viewer
(二)安装realsense-ros
1.下载编译
mkdir realsense_ws
cd realsense_ws
mkdir src
cd src
git clone https://github.com/IntelRealSense/realsense-ros.git
git clone https://github.com/pal-robotics/ddynamic_reconfigure.git
cd ..
catkin_make
如果出现错误:
CMake Error at /opt/ros/melodic/share/cv_bridge/cmake/cv_bridgeConfig.cmake或者出现其他bridge的编译错误,解决方法都类似,只需修改错误提示中的cmake文件即可。
原因: ros默认的opencv路径是/usr/include,/usr/lib,/usr/share三个目录,而nano的官方镜像自带的opencv是opencv4。
解决方法:
修改上述cv_bridgeConfig.cmake文件中的第96行,把 /usr/include/opencv 改为/usr/include/opencv4。如果是我们自己从opencv官网源码编译安装的opencv是装在usr/local/include目录下,修改96行的/usr/include/opencv为/usr/local/include/opencv4。然后重新 catkin_make并source一下
source devel/setup.sh
2.测试
realsense相机出厂时标定过参数,可以通过以下方法查看:
打开相机
roslaunch realsense2_camera rs_camera.launch
查看realsense所发布的话题
rostopic list
rostopic echo /camera/color/camera_info (查看相机内参)
二、aruco-ros安装
1.下载编译
mkdir -p ~/aruco_catkin_ws/src
cd ~/aruco_catkin_ws/src
git clone https://github.com/pal-robotics/aruco_ros.git
cd ..
catkin_make install
source install/setup.bash
如果出现错误:xxx version要求,意思就是找不到camke文件中所指向的依赖包或者版本不符,可通过修改错误提示中相应cmake中所指指向的依赖包版本为当前系统中所安装的版本或者安装其相应版本解决。
2.安装USB摄像头的ROS驱动
sudo apt-get install ros-melodic-usb-cam
3.修改single.launch文件内容
在aruco_ros这个包中有三个launch文件,分别是single、double、publish,原本是通过USB摄像头工作的,对于realsense相机需要修改参数。
gedit src/aruco_ros/aruco_ros/launch/single.launch
修改前
<launch>
<arg name="markerId" default="582"/>
<arg name="markerSize" default="0.034"/> <!-- in m -->
<arg name="eye" default="left"/>
<arg name="marker_frame" default="aruco_marker_frame"/>
<arg name="ref_frame" default=""/> <!-- leave empty and the pose will be published wrt param parent_name -->
<arg name="corner_refinement" default="LINES" /> <!-- NONE, HARRIS, LINES, SUBPIX -->
<node pkg="aruco_ros" type="single" name="aruco_single">
<!-- <remap from="/camera_info" to="/stereo/$(arg eye)/camera_info" />-->
<!-- <remap from="/image" to="/stereo/$(arg eye)/image_rect_color" />-->
<remap from="/camera_info" to="/camera/color/camera_info" />
<remap from="/image" to="/camera/color/image_raw" />
<param name="image_is_rectified" value="True"/>
<param name="marker_size" value="$(arg markerSize)"/>
<param name="marker_id" value="$(arg markerId)"/>
<param name="reference_frame" value="$(arg ref_frame)"/> <!-- frame in which the marker pose will be refered -->
<!-- <param name="camera_frame" value="stereo_gazebo_$(arg eye)_camera_optical_frame"/>-->
<param name="camera_frame" value="/camera_link"/>
<param name="marker_frame" value="$(arg marker_frame)" />
<param name="corner_refinement" value="$(arg corner_refinement)" />
</node>
</launch>
修改后
<remap from="/camera_info" to="/camera/color/camera_info" />
<remap from="/image" to="/camera/color/image_raw" />
<param name="camera_frame" value="/camera_link"/>
编辑完成后,返回到aruco_catkin_ws重新source一下
三、运行
1.生成aruco码
从下方网址生成实验所需的aruco码,注意设置为original aruco,参数设置要和上面修改的launch一样,如下图。
Online ArUco markers generator (chev.me)https://chev.me/arucogen/
2.运行
roslaunch realsense2_camera rs_camera.launch
roslaunch aruco_ros single.launch
# 观察识别效果
rosrun image_view image_view image:=/aruco_single/result
# 查看位姿
rostopic echo /aruco_single/pose