赞
踩
安装ROS推荐鱼香ROS,一键安装特别方便,地址如下:鱼香ROS
在ubuntu20.04下打开终端,输入如下命令。
wget http://fishros.com/install -O fishros && . fishros
按照提示步骤安装ROS。
- [1]:一键安装:支持ROS和ROS2,树莓派Jetson
- [2]:一键换源:一键更换系统源,支持全版本Ubuntu系统
- [3]:一键配置ROS:快速更新ROS环境设置,自动生成环境选择
- [4]:一键解决rosdep:小鱼的rosdepc,又快又好用
- [5]:一键装github桌面版:小鱼常用的github客户端
安装成功后,再配置环境变量。
- echo "source /opt/ros/noetic/setup.bash" >> ~/.bashrc
-
- source ~/.bashrc
环境配置好,在输入roscore即可打开ros。
再ctrl + alt + t打开新终端,输入如下命令:
- rosrun turtlesim turtlesim_node
可打开小乌龟测试界面。
然后再次打开新终端,输入如下命令:
- rosrun turtlesim turtle_teleop_key
并将鼠标在最新的终端内单击一次选中,按方向键可控制小乌龟移动,到此则安装并运行成功ROS。
通常情况下,创建订阅者使用系统自带msg,但在实际工程项目,往往会用到自定义的msg,这时需要对工程进行一些配置。
首先,需要创建自定义msg的interface package,然后用colcon编译,即可在系统中查看到
再新建一个带有node的package,同样编译,但这时会遇到路径问题,可在cmakelists中添加头文件路径。
继续编译,仍会报错,需要增加自定义msg的依赖。
至此,即可正确编译,再运行接收节点,便能正常接收数据。
参考:https://guyuehome.com/34760
RVIZ2支持的格式如下图
毫米波雷达和激光雷达的数据可以考虑用点云显示,也即PointCloud和PointCloud2,这里采用PointCloud。
首先查看PointCloud的消息格式,
http://docs.ros.org/en/api/sensor_msgs/html/msg/PointCloud.html
在vscode中新建工程,创建一个发布者和其定时回调函数,topic为“multi_points”
- // 创建一个发布者和其定时回调函数
-
- pub_point_data = this->create_publisher<sensor_msgs::msg::PointCloud>("multi_points", 10);
-
- point_timer = this->create_wall_timer(1000ms, std::bind(&MinimalPublisher::pub_point_callback, this));
使用标准的PointCloud,然后给各个参数赋值,特别注意给指针赋值时,需要按照如下模板:
- // 数组的标准写入方法
-
- geometry_msgs::msg::Point32 p;
-
- p.x = para_data;
-
- p.y = para_data;
-
- p.z = 0.0f;
-
- point_data.points.push_back(p);
然后编译运行,打开rviz2添加”/multi_points”的topic,即可看到点云的显示。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。