![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Ros
哇风
欢迎大家一起来学习 c/c++ ,数据结构,嵌入式相关课程
交流qq群:499984459
展开
-
树莓派的蓝牙通讯(BLUEZ、GATTLIB)
一.准备工作我使用的蓝牙模块是大夏龙雀的DX-BT16,支持BLE4.2协议。树莓派的型号为4b,操作系统为64位的ubuntu-18.04。提前说明一下,因为我没有安装桌面,所以很多工具都需要自己手动安装。首先先创建一个root用户,方便以后的系列操作。下面的所有命令都是在root权限下进行的。sudo passwdsu1 2bluez是linux官方的蓝牙协议栈,我们首先安装bluez。apt install bluez1树莓派上使用的蓝牙是通过UART和CP原创 2021-01-25 15:58:57 · 2550 阅读 · 2 评论 -
c++ 多个线程读一个线程写同步
c++ 多个线程读一个线程写同步这种情况一般多个线程读是不需要加锁的。就在写的时候需要加锁。那么要做的就是让不写的时候,读不受同步限制。让多线程自由的读。这个时候就要用读写锁boost已经有读写锁,而c++ 14才有读写锁。std::shared_mutex write; //use boost's or c++14 // One write, no reads.void write_fun(){ std::lock_guard<std::shared_mu.原创 2021-01-07 15:10:52 · 1586 阅读 · 0 评论 -
查看rostopic
1、查看ROS正在发布的话题rostopic list我的正在发布如下话题。2、具体查看某个话题,比如查看改话题的发布者(Publishers)和订阅者(Subscribers)以及话题的类型(Type),用命令:rostopic info +某个话题,比如我要查看这个话题:/brov/thruster_command,则用以下命令。rostopic info /brov/thruster_command具体内容如下3、查看ROS 中正在运行的节点rosnode list截.原创 2021-01-05 11:34:51 · 5423 阅读 · 0 评论 -
ROS 命令行工具的使用
ROS命令行工具的使用命令行工具都是以ros开头的常用命令rostopic rosservice rosnode rosparam rosmsg rossrV以安装时作为验证的turtlesim小海龟仿真器为例turtlesim是一个功能包名那三步操作分别对应着启动ROS Master ——>启动小海龟仿真器——>启动海龟控制节点roscore是用来启动ROS Master的ROS Master是ROS中所有节点的管理器,也是运行ROS系统当.原创 2020-12-25 16:34:55 · 1662 阅读 · 0 评论 -
2020-12-25
给topic 按一秒钟发布10条消息加参数 -r 10原创 2020-12-25 11:27:52 · 52 阅读 · 0 评论 -
Ubuntu18.04安装ROS Melodic
Ubuntu18.04安装ROS Melodic目录一、Ubuntu不同的版本对应ROS不同的版本 二、配置Ubuntu软件库 三、安装过程及问题解决 四、启动运行小海龟例子一、Ubuntu不同的版本对应ROS不同的版本操作系统为Ubuntu 18.04 LTS 64bit应采用ROS版本为ROS Melodic。二、配置Ubuntu软件库配置Ubuntu存储库以允许"main", “restricted” ,“universe,” and “multiverse”,如图所示.原创 2020-12-25 00:15:09 · 342 阅读 · 0 评论 -
ros 安装遇到 raw.githubusercontent.com无法访问,被墙的问题,尝试有效解决方案
问题:gb@gb-VirtualBox:~$ sudo rosdep init[sudo] gb 的密码:ERROR: cannot download default sources list from:https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/sources.list.d/20-default.listWebsite may be down.解决方法sudo vim /etc/hosts增加:.原创 2020-12-24 22:57:49 · 1567 阅读 · 0 评论 -
ROS 开发环境搭建
一.安装ROS:依次执行如下命令:sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'sudo sh -c '. /etc/lsb-release && echo "deb http://mirrors.ustc.edu.cn/ros/ubuntu/ $DISTRIB_CODENAME原创 2020-12-24 22:51:24 · 305 阅读 · 0 评论 -
ROS中参数的使用
ROS Master 中有一个 Parameter Serverrosparam列出当前参数列表rosparam list显示某个参数rosparam get parameter_name例如如下命令将读取参数/rosdistro的值rosparam get /rosdistro设置参数rosparam set parameter_name parameter_value该命令可以修改已有参数的值或者创建一个新的参数。例如如下命令将设置参数/duck_colo..原创 2020-12-18 15:44:08 · 953 阅读 · 1 评论 -
ROS msg和srv
0.概念相关Nodes:节点,一个节点其实只不过是ROS程序包中的一个可执行文件。ROS节点可以使用ROS客户库与其他节点通信。节点可以发布或接收一个话题(向话题发布消息或者订阅话题以接收消息)。节点也可以提供或使用某种服务。Messages:消息,消息是一种ROS数据类型,用于订阅或发布到一个话题。Topics:话题,节点可以发布消息到话题,也可以订阅话题以接收消息。Servicce:服务,服务是节点之间通讯的另一种方式。服务允许节点发送请求(request) 并获得一个响应(response)原创 2020-12-17 17:54:33 · 1219 阅读 · 2 评论 -
ROS-自定义消息类型 c++
一、msg 用于发布-订阅的通信方式中。 1、在包的src同级目录下创建msg文件夹。 2、在msg文件夹中,创建.msg文件(例:my_msg.msg) 3、编辑my_msg.msg文件 int32 data1string data2 4、编辑package.xml , 添加依赖 <build_depend>message_generation</build_depend> <build_export_depend&g...原创 2020-12-17 16:55:54 · 1068 阅读 · 1 评论 -
unistd.h中的access函数
access to作为有权使用什么,即可理解access()函数想表达有做某事的权限。函数参数有两个,第一个为文件,那么对应的第二个参数就不难推想出为文件有那些权限和是否存在。头文件:unistd.h功 能: 确定文件或文件夹的访问权限。即,检查某个文件的存取方式,比如说是只读方式、只写方式等。如果指定的存取方式有效,则函数返回0,否则函数返回-1。用 法: int access(const char *filenpath, int mode); 或者int _access( const char *原创 2020-12-16 15:01:52 · 1007 阅读 · 0 评论 -
ROS 服务
列出所有服务rosservice list原创 2020-12-15 20:50:39 · 73 阅读 · 0 评论 -
vscode开发ROS(3)-创建第一个ROS项目
创建根目录点击"文件"–>“打开文件夹”–>”创建文件夹",磁盘上选择一个路径A(此处A代表你的保存文件夹的路径),输入文件夹名称,例如:test,点击确定。此时在左侧资源管理器中,会自动生成一个".vscode"文件夹,会自动生成"c_cpp_properties.json" 和”setting.json“两个文件。配置ros空间1, 点击创建"src"文件夹注意:(正常来说,vscode 安装 ros插件就会自动生成)如果此处不自动生成c_cpp_properties.jso.原创 2020-12-15 20:50:11 · 356 阅读 · 0 评论 -
ROS 安装 vscode IDE
前提条件:安装好了ROS(melotic) 和 VSCODE1、vscode安装必要的插件2、提前准备好一个ROS的catkin workspace在workspace下面使用vscode打开$ code .打开之后,第一步安装的ROS插件就会自动识别到这个workspace,同时会出现一个文件夹.vscode里面有两个json文件:c_cpp_properties.jsonsettings.jsonc_cpp_properties.json 主要是和头文件 r原创 2020-12-11 17:04:52 · 795 阅读 · 0 评论 -
shell实现ssh登录并执行命令
使用expect可以不用输入密码,避免重复劳动。那什么是expect?查了一下,expect是一个免费的编程工具,用来实现自动的交互式任务,而无需人为干预。说白了,expect就是一套用来实现自动交互功能的软件。在实际工作中,我们运行命令、脚本或程序时,这些命令、脚本或程序都需要从终端输入某些继续运行的指令,而这些输入都需要人为的手工进行。而利用expect,则可以根据程序的提示,模拟标准输入提供给程序,从而实现自动化交互执行。这就是expect!!!真的很好用。先安装expectsudo原创 2020-12-11 16:35:30 · 2134 阅读 · 0 评论 -
ROS IDE:VScode介绍
选择一款IDE工具可以提高编程效率,ROS编程有不少可使用的IDE工具,官网有推荐若干种,可以参考:http://wiki.ros.org/IDEs。wiki.ros.org大家可以选择自己熟悉的一款,也可以参考本篇,使用VScode,VScode是微软开发的一款跨平台开源编辑器,目前使用的比较广泛,配置也比较简单。一. 安装:首先从官网:Visual Studio Code - Code Editing. Redefinedcode.visualstudio.com下载当.原创 2020-12-10 19:39:30 · 469 阅读 · 2 评论 -
ROS 参数
7.1 通过命令行获取参数查看参数列表使用下面的命令可以查看所有参数的列表 :rosparam list查询参数 向参数服务器查询某个参数的值,可以使用 rosparam get 命令: rosparam get parameter_name 例如,如下命令将读取参数/rosdistro 的值: rosparam get /rosdistro设置参数 如下命令用于设置参数的值: rosparam set parameter_name parameter_..原创 2020-12-10 15:14:42 · 402 阅读 · 1 评论 -
ROS launch 启动文件
<launch><nodepkg="turtlesim"type="turtlesim_node"name="turtlesim"respawn="true"/><nodepkg="turtlesim"type="turtle_teleop_key"name="teleop_key"required="true"/><nodepkg="subpose"type="subpose"name="pose_subscriber"out.原创 2020-12-09 16:42:27 · 781 阅读 · 1 评论 -
rosrun无法执行相应的可执行程序
问题描述:创建好了功能区和功能包后catkin_make 编译一切正常。rosrun package_name executable_name时找不到可执行程序(按table联想不出来executable_name),编译没有报错;也进行了source devel/setup.bash,最后发现是CMakeList里边少了一句话catkin_package();这句话顺序好像也会影响到能否找到可执行程序,写的时候最好跟在find_package()这句话后面;这样就能在devel/lib/package_n原创 2020-12-09 16:07:13 · 1796 阅读 · 0 评论 -
ROS日志消息
// This program periodical ly generates log messages at // various severity levels . #include <ros/ros.h> int main (int argc,char **argv) { // Initialize the ROS system and become a node . ros::init(argc, argv, "count_and_log"); ros::NodeHan.原创 2020-12-09 14:36:17 · 991 阅读 · 0 评论 -
ROS订阅者程序
#include <ros/ros.h>#include <turtlesim/Pose.h>#include <iomanip>void poseMessageReceived ( const turtlesim::Pose& msg ){ ROS_INFO_STREAM( std::setprecision ( 2 ) << std::fixed << " position =(" << msg.x...原创 2020-12-08 20:20:53 · 1080 阅读 · 0 评论 -
ROS 发布者程序,控制小龟行走
#include <ros/ros.h>#include <geometry_msgs/Twist.h>#include <stdlib.h>int main ( int argc , char ** argv ) {ros::init (argc, argv, "publish_velocity") ;ros::NodeHandle nh ;ros::Publisher pub = nh.advertise <geometry_msgs::T.原创 2020-12-08 18:32:59 · 404 阅读 · 0 评论 -
编写第一个ROS功能包
1.1 创建catkin工作空间创建一个 catkin 工作空间:$ mkdir -p ~/catkin_ws/src # 创建了第二层级的文件夹src,这是放ROS软件包的地方$ cd ~/catkin_ws/src # 进入工作空间,catkin_make必须在工作空间这个路径上执行$ catkin_init_workspace # 初始化src目录,生成的CMakeLists.txt为功能包编译配置1.2 编译工作空间$ cd ~/catkin...原创 2020-12-08 16:09:27 · 630 阅读 · 0 评论 -
ROS学习总结
1.安装ROS#!/bin/shsudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'sudo sh -c '. /etc/lsb-release && echo "deb http://mirrors.ustc.edu.cn/ros/ubuntu/ $DISTRIB_CODENAME原创 2020-12-07 20:06:51 · 255 阅读 · 0 评论 -
Ubuntu18.04 ROS填坑之 roscore Command ‘roscore‘ not found, ..... : sudo apt install python-roslaunch
问题背景: 安装ROS 遇到报错: usrname:~$ roscore Command 'roscore' not found, but can be installed with: sudo apt install python-roslaunch 按照提示进行的操作,结果依然报错: usrname:~$ sudo apt install python-roslaunch 正在读取软件包列表... 完成 ...原创 2020-12-07 19:33:09 · 4753 阅读 · 6 评论