当前位置: 首页 > news >正文

重庆网站建设入门培训/西安网络优化哪家好

重庆网站建设入门培训,西安网络优化哪家好,如何开 网站建设公司,企业网站排名优化哪家好ROS 快速入门教程–机器人工匠阿杰 11. 年轻人的第一个node节点 cd ~/catkin_ws/src ; // 进入工作空间 catkin_create_p kg ssr_pkg rospy roscpp std_msgs ; // 创建一个名为ssr_pkg的工程,依赖包是:rospy roscpp std_msgs // 此时,利用c…

ROS 快速入门教程–机器人工匠阿杰

11. 年轻人的第一个node节点

cd ~/catkin_ws/src ; // 进入工作空间
catkin_create_p kg ssr_pkg rospy roscpp std_msgs ; // 创建一个名为ssr_pkg的工程,依赖包是:rospy roscpp std_msgs
// 此时,利用code指令进入vscode,打开工作空间目录下的ssr_pkg
// 再src下面的目录下,新建一个cpp文件,chao_node.cpp
chao_node.cpp:#include<ros/ros.h>int main(int argc, char const *argv[]){printf("hello, world");return 0;}
// 注意这时候可能include的文件标红,这时候只需要删除掉.vscode下面的c_cpp_properties.json文件,然后重新打开vscode即可。
// 接下来,打开CMakeList.txt文件(注意这里用的注释格式)
// 找到下面的注释文件中的"build"栏目中一行
add executable(${name}_node src/ssr_pkg_node.cpp) // 后面表示地址和文件名// 前面是节点名称
add executable(chao_nodes src/chao_node.cpp)// 注意 每一次修改文件以后,都一定要记得保存
// 然后是ctrl+shift+B来编译。步骤二:
// 打开新的终端roscore;
// 配置环境空间source ~/catkin_ws/devel/setup.bash;
// 运行超声波传感器节点rosrun ssr_pkg chao_node步骤三:// 在主函数中加入ros:init()// 构建while循环,循环条件为ros:ok(); ,这样可以直接ctrl + c推出。// 在cmake文件中找到设置节点源码的编译规则,"build"的最后面target_link_libraries(chao_node${catkin_LIBRIES})

请添加图片描述

12 Topic话题和Message消息

请添加图片描述

Topic: 持续通讯的一种形式

Message: 通讯过程中发送的消息。

Publisher: 消息的发送方

Subscriber: 消息的接收方。

注意:一个话题里面一般不会发布多条信息,那样容易让接收者混乱。

所以比如另外有一个传感器也要发布关于姿态信息,那它就必须新建一个Topic,然后在这个Topic中发布message,作为接收者来说,就可以选择性的接受来自Topic的话题。

请添加图片描述

13. Publisher发布者和代码实现

请添加图片描述

注意:以上问题,rostopic话题不能是中文的。

// chao_node的代码
#include<ros/ros.h>
#include<std_msgs/String.h>
int main(int argc, char *argv[])
{ros::init(argc, argv, "chao_node");/* code */ros::NodeHandle nh;// 注意:话题名称ros::Publisher pub = nh.advertise<std_msgs::String>("go_car_kai_hei", 10); // first : message. seconde : queueros::Rate loop_rate(10); // 设置频率。一秒钟发送十次。while(ros::ok()){printf("我要发布消息了!\n");std_msgs::String msg;msg.data = "超声波数据";pub.publish(msg);loop_rate.sleep(); // 实现延迟阻塞}return 0;
}

rostopic list : 列出系统中活跃的话题

rostopic echo + 主题名称:显示指定话题中发送的信息

rostopic hz + 主题名称:统计指定话题中消息发送频率

同理,复制节点,命名为yao_node.cpp

14. 在ros中,使用c++编写subcriber

#include<ros/ros.h>
#include<std_msgs/String.h>void chao_callback(std_msgs::String msg){ // 这个接受回溯函数用来处理接受到的信息ROS_INFO(msg.data.c_str()); // 带时间戳的信息
}int main(int argc, char *argv[])
{setlocale(LC_ALL, ""); // ""代表跟随系统文字,可以正常输出中文/* code */ros::init(argc, argv, "ma_node");ros::NodeHandle nh;ros::Subscriber sub = nh.subscribe("go_car_kai_hei", 10, chao_callback); // 注意:""这里的是对应要接受的topic名称。while(ros::ok()){ros::spinOnce(); // 这个函数为了让系统把注意力放在接受信息上。}return 0;
}// 对应的编译CMake文件:结尾处加入这个
add_executable(ma_node src/ma_node.cpp)
target_link_libraries(ma_node${catkin_LIBRARIES}
)

请添加图片描述

一个工具:rqt_graph 一个查看节点关系的工具。

15. ROS中,使用launch文件一次性启动多个节点

在上一接中,我们如果要实现接收者接收到多个发布者的信息,就需要打开多个窗口来分别运行,这样比较麻烦,于是launch文件运用而生。只需要用标记语言来对多个节点进行标记,就可以实现一次性运行。

请添加图片描述

接下来,我们来实践操作一下

  • 首先,在pkg文件下,新建一个launch文件夹,然后在这个文件夹下新建一个kai_hei.launch文件。然后编辑如下:
<launch><node pkg="ssr_pkg" type="chao_node" name="chao_node" launch-prefix="gnome-terminal -e"/><node pkg="ssr_pkg" type="yao_node" name="yao_node"/><node pkg="atr_pkg" type="ma_node" name="ma_node" output="screen"/></launch>

19. 在ROS中,用C++实现机器人的运动控制

// 1 首先新建一个速度发布节点
cd catkin_ws/src/
catkin_create_pkg vel_pkg roscpp rospy geometry_msgs
// 2 创建一个速度节点 vel_node.cpp
#include<ros/ros.h>
#include<geometry_msgs/Twist.h>int main(int argc, char *argv[])
{/* code */// 首先是ros初始化,节点命名ros::init(argc, argv, "vel_node");// 引入一个ros管家ros::NodeHandle n;ros::Publisher vel_pub = n.advertise<geometry_msgs::Twist>("/cmd_vel", 10);// 新建一个变量来存储数据geometry_msgs::Twist vel_msg;// Twish 有两个变量:速度、角速度vel_msg.linear.x = 0.1; // x轴方向的速度vel_msg.linear.y = 0;vel_msg.linear.z = 0;vel_msg.angular.x = 0; // x轴方向的角速度vel_msg.angular.y = 0;vel_msg.angular.z = 0;// 通过while循环来实现循环播报ros::Rate r(30);while(ros::ok()){vel_pub.publish(vel_msg);r.sleep();}return 0;
}
// 对应的编译文件修改一下
# catkin_add_nosetests(test)
add_executable(vel_node srcel_node.cpp)
add_dependencies(vel_node ${${PROJECT_NAME}_EXPORTED_TARGETS} ${catkin_EXPORTED_TARGETS})
target_link_libraries(vel_node${catkin_LIBRARIES}
)

22. ROS中,使用RViz观测传感器数据

可以使用rviz进行添加模型,然后添加观测机器人的传感器,在左侧的状态栏可以修改传感器的一些参数。

如果要保存rviz的配置,直接file–save as保存为.rviz文件即可,下一次直接打开。

在这个模型里面,可以通过:

roslaunch wpr_simulation wpb_rviz.launch来实现配置好的rviz界面

23 ROS系统中激光雷达的消息包

请添加图片描述

在实际ros项目中,激光雷达的数据如下:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-LJe5mJws-1687785842657)(C:\Users\风净尘\Desktop\QQ图片20230311111300.jpg)]

range是每一个方向的障碍物距离,有360个角度线。 如果超出了范围,就是INF表示无穷大。

请添加图片描述

24. 用C++实现获取激光雷达数据的接收器

首先继续按照之前的方式创建一个pkg,然后创建lidar_node.cpp文件如下:

#include<ros/ros.h>
#include<sensor_msgs/LaserScan.h>//回调函数
void lidar_callback(sensor_msgs::LaserScan msg){float fMidDist = msg.ranges[180]; // 这里指向的是正前方,从6点钟方向来算0度。ROS_INFO("前方测距 range[180] = %f 米", fMidDist);
}int main(int argc, char *argv[])
{// 初始化setlocale(LC_ALL, ""); // 设置全局语言跟随系统ros::init(argc, argv, "lidar_node"); // 节点名字// 引入管家ros::NodeHandle nh;// 创建接受者ros::Subscriber lidar_sub = nh.subscribe("/scan", 10, lidar_callback);ros::spin(); // 让系统监视这个信息return 0;
}

28. IMU惯性测量单元

请添加图片描述

注意区别,这里的是线性加速度x,y,z轴。

orientation——covariance:协方差矩阵

38 ROS中的栅格地图

请添加图片描述

http://www.jmfq.cn/news/4967407.html

相关文章:

  • 转播网站如何做/百度北京分公司官网
  • 做独立网站需要注意什么手续/长春网站建设
  • 在哪做网站不要钱/网络营销策略分析
  • 上海品牌设计公司有哪些/seo排名赚app下载
  • 定制网站制作公司/搜索引擎优化课程总结
  • 网站设计规划信息技术教案/湖南关键词排名推广
  • 狮山网站建设/广告营销平台
  • 邢台做wap网站的地方/seo工程师是什么职业
  • 常德seo招聘/太原seo外包公司
  • 常州网站制作企业/东营网站建设费用
  • 烟台商城app开发/seo案例分析及解析
  • 孝昌建设局网站/新冠疫情最新情况
  • 深圳网站制作教程/百度推广登录首页网址
  • 自己的网站怎么做砍价/谷歌浏览器 安卓下载2023版官网
  • P2P网站怎么建设/长沙seo全网营销
  • 温州 网站建设公司/app拉新推广一手接单平台
  • 珠海网站建设联系方式/谷歌seo招聘
  • 北京科技网站建设公司/西安seo推广
  • wampserver搭建网站/企业宣传ppt
  • 迎访问备案网站管理系统/seo策略分析
  • 邢台地区网站建设独立/北京百度推广开户
  • 做网站要备案/郑州竞价托管公司哪家好
  • 小榄网站建设推广/搜索引擎优化的定义
  • 网站url在哪优化/网站推广与优化方案
  • 自己做网站需要学些什么/成都爱站网seo站长查询工具
  • 在线代理网页服务器/西安做seo的公司
  • 网乐科技网站建设/网页设计与制作教程
  • 南昌企业自助建站/百度一下网页打开
  • 海淀区网站建设/长沙seo研究中心
  • 单位内网网站建设 开设栏目/如何做网络营销推广