IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 嵌入式 -> 五、ROS学习之订阅T265里程计数据并与stm32通信 -> 正文阅读

[嵌入式]五、ROS学习之订阅T265里程计数据并与stm32通信

1.通过节点订阅t265的里程计数据

我使用的是Kinetic版本
1)环境安装

sudo apt-key adv --keyserver keys.gnupg.net --recv-key F6E65AC044F831AC80A06380C8B3A55A6F3EFCDE || sudo ap
sudo add-apt-repository "deb https://librealsense.intel.com/Debian/apt-repo $(lsb_release -cs) main" -u
sudo apt-get update
sudo apt-get install librealsense2-dkms librealsense2-utils librealsense2-dev librealsense2-dbg
realsense-viewer

成功运行的话就会出现Intel的上位机的界面了。
2)安装T265的ROS包

sudo apt-get install ros-kinetic-ddynamic-reconfigure
cd ~/catkin_ws/src/
git clone https://github.com/IntelRealSense/realsense-ros.git
cd realsense-ros/
git checkout `git tag | sort -V | grep -P "^2.\d+\.\d+" | tail -1`
cd ..
catkin_make -DCATKIN_ENABLE_TESTING=False -DCMAKE_BUILD_TYPE=Release

3)接下来运行这个可以在rviz中看到T265的图像信息

roslaunch realsense2_camera demo_t265.launch

运行这个可以使t265发布话题

roslaunch realsense2_camera rst265.launch

这样t265就可以发布数据了,我们以话题的方式来接受他

订阅T265的里程计信息

我用的是vscode开发环境

1)在realsense2_camera功能包里创建一个stm32_sub_t265.cpp文件,并编写如下代码

#include "../include/t265_realsense_node.h"
#include "t265_realsense_node.h"
#include <serial/serial.h>
void doMsg(const nav_msgs::Odometry::ConstPtr& msg)
{
  float pose_x=0,pose_y=0,pose_z=0,speed_x=0,speed_y=0,speed_z=0;
  pose_x = -msg->pose.pose.position.x;
  pose_y = -msg->pose.pose.position.y;
  pose_z = msg->pose.pose.position.z;
  speed_x = msg->twist.twist.linear.x;
  speed_y = -msg->twist.twist.linear.y;
  speed_z = msg->twist.twist.linear.z;

   ROS_INFO("X_坐标:%f Y_坐标:%f Z_坐标:%f", pose_x,pose_y,pose_z);
   ROS_INFO("X_速度:%f Y_速度:%f Z_速度:%f", speed_x,speed_y,speed_z);
}

int main(int argc, char  *argv[])
{

    setlocale(LC_ALL,"");

    ros::init(argc, argv, "air_t265");

    ros::NodeHandle nh;

    ros::Subscriber sub = nh.subscribe("/camera/odom/sample",10,doMsg);

    ros::spin();
    return 0;
}

2)在CMakeList.txt中添加如下代码

 add_executable(stm32_sub_t265 src/stm32_sub_t265.cpp)
 target_link_libraries(stm32_sub_t265
   ${catkin_LIBRARIES}
 )

并修改这段代码如下

add_library(${PROJECT_NAME}
    include/constants.h
    include/realsense_node_factory.h
    include/base_realsense_node.h
    include/t265_realsense_node.h
    src/realsense_node_factory.cpp
    src/base_realsense_node.cpp
    src/t265_realsense_node.cpp
    src/stm32_sub_t265.cpp
    )

4)接下来就可以运行相关节点了

roslaunch realsense2_camera rst265.launch
roslaunch realsense2_camera stm32_sub_t265

运行结果如下

实现linux系统与stm32通信,并向stm32发送里程计信息

  嵌入式 最新文章
基于高精度单片机开发红外测温仪方案
89C51单片机与DAC0832
基于51单片机宠物自动投料喂食器控制系统仿
《痞子衡嵌入式半月刊》 第 68 期
多思计组实验实验七 简单模型机实验
CSC7720
启明智显分享| ESP32学习笔记参考--PWM(脉冲
STM32初探
STM32 总结
【STM32】CubeMX例程四---定时器中断(附工
上一篇文章      下一篇文章      查看所有文章
加:2021-09-30 12:05:27  更:2021-09-30 12:05:40 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 2:51:12-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码