0
点赞
收藏
分享

微信扫一扫

实验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源码为例:

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

复制到:

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

使用catkin_make编译。

生成devel和build:

实验2 蓝桥ROS1架构与概念 适用kinetic/melodic/noetic_文件系统_03 

build:编译

devel:开发

src:源码

src-build-devel。

可执行文件在devel中,需要导入devel/setup.zsh。

实验2 蓝桥ROS1架构与概念 适用kinetic/melodic/noetic_文件系统_04

计算图级

ROS1程序节点之间的关联性:

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

分别在不同的终端输入:

第一个(启动主节点):roscore 

第二个(可视化小乌龟节点):rosrun turtlesim turtlesim_node 

第三个(遥控小乌龟节点):rosrun turtlesim turtle_teleop_key

第四个(图形化工具查看上述节点关系):rqt_graph

社区级

打开网站:  wiki.ros.org

进行详细了解

创建功能包并实现功能。

默认效果

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

以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");

实验2 蓝桥ROS1架构与概念 适用kinetic/melodic/noetic_帮助文档_07 

注意:ID需要修改为对应学号!

依据实际操作完成。 

实验2 蓝桥ROS1架构与概念 适用kinetic/melodic/noetic_文件系统_08


思考:

1. 编译后代码,需要更新环境,否则系统不识别

使用 source devel/setup.zsh

2. 修改源码,可以定制化相关功能

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


举报

相关推荐

0 条评论