实验2 蓝桥ROS1架构与概念 适用kinetic/melodic/noetic
需要先完成实验1,不要直接看本实验。
要求:
ROS1文件系统级、计算图级、社区级、创建功能包并实现功能等。
环境:
www.lanqiao.cn/courses/854
记录:
下载课程介绍中的案例源程序
wget https://labfile.oss.aliyuncs.com/courses/854/rosdemos_ws.zip
解压缩
unzip -h 不清楚就查帮助文档
unzip rosdemos_ws.zip
文件系统
以turtlesim源码为例:
复制到:
使用catkin_make编译。
生成devel和build:
build:编译
devel:开发
src:源码
src-build-devel。
可执行文件在devel中,需要导入devel/setup.zsh。
计算图级
ROS1程序节点之间的关联性:
分别在不同的终端输入:
第一个(启动主节点):roscore
第二个(可视化小乌龟节点):rosrun turtlesim turtlesim_node
第三个(遥控小乌龟节点):rosrun turtlesim turtle_teleop_key
第四个(图形化工具查看上述节点关系):rqt_graph
社区级
打开网站: wiki.ros.org
进行详细了解
创建功能包并实现功能。
默认效果
以turtlesim修改为例:
-
#define DEFAULT_BG_R 0x45
-
#define DEFAULT_BG_G 0x56
-
#define DEFAULT_BG_B 0xff
-
-
namespace turtlesim
-
{
-
-
TurtleFrame::TurtleFrame(QWidget* parent, Qt::WindowFlags f)
-
: QFrame(parent, f)
-
, path_image_(500, 500, QImage::Format_ARGB32)
-
, path_painter_(&path_image_)
-
, frame_count_(0)
-
, id_counter_(0)
-
{
-
setFixedSize(500, 500);
-
setWindowTitle("TurtleSim");
修改为:
-
#define DEFAULT_BG_R 0x66
-
#define DEFAULT_BG_G 0x44
-
#define DEFAULT_BG_B 0x22
-
-
namespace turtlesim
-
{
-
-
TurtleFrame::TurtleFrame(QWidget* parent, Qt::WindowFlags f)
-
: QFrame(parent, f)
-
, path_image_(666, 666, QImage::Format_ARGB32)
-
, path_painter_(&path_image_)
-
, frame_count_(0)
-
, id_counter_(0)
-
{
-
setFixedSize(666, 666);
-
setWindowTitle("TurtleSim-ID-666666");
注意:ID需要修改为对应学号!
依据实际操作完成。
思考:
1. 编译后代码,需要更新环境,否则系统不识别
使用 source devel/setup.zsh
2. 修改源码,可以定制化相关功能
阅读开源程序源代码,并能掌握部分代码修改和定制。
文章来源: zhangrelay.blog.csdn.net,作者:zhangrelay,版权归原作者所有,如需转载,请联系作者。
原文链接:zhangrelay.blog.csdn.net/article/details/124744927
- 点赞
- 收藏
- 关注作者
评论(0)