灵犀科技网站建设,手机网站app生成,做婚庆的网站有哪些,apicloud官网下载这部分内容结合了前面的内容。其实很简单#xff0c;分三步走就可以#xff1a;首先是通过ROS打开激光雷达#xff0c;查看PCL配置需要的信息。然后是用PCL通过ROS发布的topic获取激光雷达的数据。最后将ROS和PCL结合。 实现上面两步的前提是我们已经部署好了ROS环境及PCL环… 这部分内容结合了前面的内容。其实很简单分三步走就可以首先是通过ROS打开激光雷达查看PCL配置需要的信息。然后是用PCL通过ROS发布的topic获取激光雷达的数据。最后将ROS和PCL结合。 实现上面两步的前提是我们已经部署好了ROS环境及PCL环境具体操作如下
一、通过ROS打开激光雷达
首先需要搭建好打开激光雷达的环境这部分内容可以参照以下博址
4.livox hap(大疆激光雷达环境搭建_livox hap激光雷达-CSDN博客然后根据该博址运行
source ../../devel/setup.sh
roslaunch livox_ros_driver2 rviz_HAP.launch
运行成功后得到界面如下 上面代码和图在以上博址有。在这个图片里我们注意两个地方 一是记住左栏第二行的Fixed Frame后的livox_frame二是记住左栏发布的Topic后的/livox/lidar这两个内容是后面PCL读取数据需要的。在这里打开雷达的环境就配置好了。 二、用PCL通过ROS发布的topic获取激光雷达的数据 PCL的详细运用可以看博址 在这里直接写读取激光雷达数据的步骤和博址有略微的差别。
1、在home下新建文件夹
mkdir -p ~/catkin_ws/src
2、进入src文件夹并初始化
cd ~/catkin_ws/src
catkin_init_workspace
执行完该命令后src目录下会多出一个 CMakeLists.txt 文件这个文件一般不需要我们修改。
3、 返回到catkin_ws下进行编译(注意每次编译必须在这个ws工作空间下才能编译成功)
cd ~/catkin_ws/
catkin_make
执行完该命令后发现工作空间catkin_ws中有三个目录 build devel src。可以从5、看到它们的作用。
4、source一下将工作空间加入环境变量
source devel/setup.bash
注意 这一步只重新加载了setup.bash文件。如果关闭并打开一个新的命令行窗口也需要再输入该命令将得到同样的效果。
所以建议采用一劳永逸的方法.
5、.bashrc文件在用户的home文件夹(/home/USERNAME/.bashrc)下。每次用户打开终端这个文件会加载命令行窗口或终端的配置。所以可以添加命令或进行配置以方便用户使用。在bashrc文件添加source命令
echo source ~/catkin_ws/devel/setup.bash ~/.bashrc
或者也可以打开.bashrc文件采用手动修改的方式添加source ~/catkin_ws/devel/setup.bash
gedit ~/.bashrc
添加完毕你的bashrc文件应该有两句source: 添加完后在 .bashrc的同目录下运行
~/.bashrc
5、理解工作空间
工作空间结构 源空间(src文件夹)放置了功能包、项目、复制的包等。在这个空间中,最重要的一个文件是CMakeLists.txt。当在工作空间中配置包时,src文件夹中有CMakeLists.txt因为cmake调用它。这个文件是通过catkin_init_workspace命令创建的。
编译空间(build space):在build文件夹里,cmake和catkin为功能包和项目保存缓存信息、配置和其他中间文件。
开发空间(Development(devel)space):devel文件夹用来保存编译后的程序,这些是无须安装就能用来测试的程序。一旦项目通过测试,就可以安装或导出功能包从而与其他开发人员分享。
一、创建节点发布点云数据并可视化
1、在ros工作空间的src目录下新建包包含依赖项
catkin_create_pkg chapter10_tutorials pcl_conversions pcl_ros pcl_msgs sensor_msgs
2、在软件包中新建src目录
rospack profile
roscd chapter10_tutorials
mkdir src
3、在src目录下新建pcl_write.cpptopic为“/livox/lidar发布。frame设为livox_frame这两个信息是从第一步得到的。
注意以下代码也有个地方要改为/livox/lidar在这里已经修改好了如果你们的topic不同则自己需要修改。
#include ros/ros.h
#include pcl/point_cloud.h
#include pcl_conversions/pcl_conversions.h
#include sensor_msgs/PointCloud2.h
#include pcl/io/pcd_io.hvoid cloudCB(const sensor_msgs::PointCloud2 input)
{pcl::PointCloudpcl::PointXYZ cloud;pcl::fromROSMsg(input, cloud);pcl::io::savePCDFileASCII (0.pcd, cloud);
}main (int argc, char **argv)
{ros::init (argc, argv, pcl_write);ros::NodeHandle nh;ros::Subscriber bat_sub nh.subscribe(/livox/lidar, 10, cloudCB);ros::spin();return 0;
}
4、修改cmakelist.txt内容
cmake_minimum_required(VERSION 2.8.3)
project(chapter10_tutorials)
find_package(catkin REQUIRED COMPONENTSpcl_conversionspcl_rosroscppsensor_msgsrospy
)find_package(PCL REQUIRED)
catkin_package()include_directories(${catkin_INCLUDE_DIRS}${PCL_INCLUDE_DIRS}
)link_directories(${PCL_LIBRARY_DIRS})add_executable(pcl_write src/pcl_write.cpp)target_link_libraries(pcl_write ${catkin_LIBRARIES} ${PCL_LIBRARIES})5、进入工作空间编译包
cd ~/catkin_ws
catkin_make --pkg chapter10_tutorials 三、将ROS和PCL结合
1、若编译成功新窗口打开ros
roscore2.打开新窗口再次运行第一步的代码打开激光雷达
source ../../devel/setup.sh
roslaunch livox_ros_driver2 rviz_HAP.launch
3.再打开个新窗口运行pcl_write.cpp
roscd chapter10_tutorials rosrun chapter10_tutorials pcl_write
4.可视化
rviz 注意若打开后没有雷达返回的数据则将左栏的设置为第一步的信息。