前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >实验2 蓝桥ROS1架构与概念 适用kinetic/melodic/noetic

实验2 蓝桥ROS1架构与概念 适用kinetic/melodic/noetic

作者头像
zhangrelay
发布2022-05-14 09:06:44
2200
发布2022-05-14 09:06:44
举报

需要先完成实验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修改为例:

代码语言:javascript
复制
#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");

修改为:

代码语言:javascript
复制
#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. 修改源码,可以定制化相关功能

阅读开源程序源代码,并能掌握部分代码修改和定制。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2022-05-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档