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

佛山网站建设冯哥石家庄网站优化

佛山网站建设冯哥,石家庄网站优化,网页设计文献,男女直接做那个视频网站本文主要介绍如何在STM32中使用microros与ROS2进行通信,在ROS1中标准的库是rosserial,在ROS2中则是microros,目前网上的资料也有一部分了,但是都没有提供完整可验证的demo,本文将根据提供的demo一步步给大家进行演示。1、首先如果你用的不是S…

本文主要介绍如何在STM32中使用microros与ROS2进行通信,在ROS1中标准的库是rosserial,在ROS2中则是microros,目前网上的资料也有一部分了,但是都没有提供完整可验证的demo,本文将根据提供的demo一步步给大家进行演示。

1、首先如果你用的不是STM32F4的话,则需要自己去生成micro_ros_stm32cubemx_utils库,博文demo使用的硬件是STM32F407芯片,提供的micro_ros_stm32cubemx_utils库也是F4的,工程目录如下图所示:

工程使用STM32CubeMX软件进行端口硬件等代码的初始化,大家在开发中可以对stattobotMicroros.ioc文件进行编辑,本文不对STM32CubeMX的使用进行讲解,大家可以自行百度学习。

2、micro_ros_stm32cubemx_utils使用提供了中断读写和DMA读写的接口,大家根据自己实际使用的端口对文件,dma_transports.c,it_transport.c

3、microros_tasks.c是microsros初始化和节点发布订阅的文件,

void starrobot_microros_init(void){MX_USART1_UART_Init();rmw_ret_t status = rmw_uros_set_custom_transport(true,(void *) &huart1,cubemx_transport_open,cubemx_transport_close,cubemx_transport_write,cubemx_transport_read);rcl_allocator_t freeRTOS_allocator = rcutils_get_zero_initialized_allocator();freeRTOS_allocator.allocate = microros_allocate;freeRTOS_allocator.deallocate = microros_deallocate;freeRTOS_allocator.reallocate = microros_reallocate;freeRTOS_allocator.zero_allocate =  microros_zero_allocate;if (!rcutils_set_default_allocator(&freeRTOS_allocator)) {printf("Error on default allocators (line %d)\n", __LINE__); }
}

该函数主要是对硬件进行注册绑定,使用的硬件,打开、关闭、读写、函数与microros的接口进行绑定。

void run_starrobotSTM_node(void){   // initial configurations starrobot_microros_init();init_starrobotSTM_node();create_starrobotSTM_publisher();create_starrobotSTM_subscriber();// timer for publisherrcl_timer_t timer_pub;RCCHECK(rclc_timer_init_default(&timer_pub,&support,RCL_MS_TO_NS(5),publisher_callback));// create executorexecutor = rclc_executor_get_zero_initialized_executor();RCCHECK(rclc_executor_init(&executor, &support.context, 2, &allocator));RCCHECK(rclc_executor_add_timer(&executor, &timer_pub));RCCHECK(rclc_executor_add_subscription(&executor, &subscriber, &sub_msg, &subscription_callback, ON_NEW_DATA));// spin node by executor while(1){rcl_ret_t rc = rclc_executor_spin(&executor); //, RCL_MS_TO_NS(100)if (rc != RCL_RET_OK){break;}}// rclc_executor_fini(&executor);
}

该函数是整个节点的封装函数,包含了注册绑定硬件和创建发布、订阅节点。

大家下载demo包后,需要先在vscode中配置开发ARM的环境,然后make jflash进行编译下载即可;下载完成后打开ROS2端运行Agent 指令:<sudo docker run -it --rm -v /dev:/dev -v /dev/shm:/dev/shm --privileged --net=host microros/micro-ros-agent:$ROS_DISTRO serial --dev /dev/ttyUSB0 -v>,使用<ros2 node list> <ros2 topic list> <ros2 topic info /topic_name>查看发布的节点信息和数据。

相关demo代码下载地址:https://gitee.com/starRureole/starrobot_microros.git

如果大家有CSDN积分,想支持一下博主的,可以在CSDN上下载:https://download.csdn.net/download/qq_36349536/87500333

同时也欢迎大家进群一起交流学习:129923584

相关视频讲解链接:https://www.bilibili.com/video/BV1bD4y1g7V5/

博文使用的开发板购买链接:https://item.taobao.com/item.htm?spm=a1z10.1-c-s.w4004-21142386790.2.c0086177uv5IlA&id=606445592295

http://www.mmbaike.com/news/30244.html

相关文章:

  • 深圳公司网站设计公关于友谊的连接
  • 专业的营销型网站制作贵阳搜索引擎排名推广
  • 做网站年入千万郑州seo全网营销
  • 石家庄企业网站互联网营销师是干什么
  • 免费网站可以做cpa外包公司和劳务派遣的区别
  • 网站建设售前说明书网络营销的应用研究论文
  • 做私服发布网站犯法吗短视频代运营方案策划书
  • 网站建设与维护 书百度账号是什么
  • 在线咨询免费seo快速排名优化方式
  • 王者荣耀官方网站星乐seo网站关键词排名优化
  • 物流公司做网站需求百度推广托管公司
  • 网站独立开发创量广告投放平台
  • 如何做网站庆祝她生日快乐电商平台营销策划方案
  • 怎么制作一个表白网站域名权重查询工具
  • 响应式电商网站制作电商平台开发需要多少钱
  • 如何把网站上传到网上sem分析是什么意思
  • 长沙seo外包优化seo运营招聘
  • 网站后台和移动开发青岛网站建设推广公司
  • php网站多语言翻译怎么做百度推广客服电话人工服务
  • 申请注册网站seo整站优化什么价格
  • 成都卫健委最新通知seo页面优化公司
  • 如何建设盈利网站网络营销推广计划
  • 手机网站模板免费青岛网站排名推广
  • 个人网站搭建模拟感想枸橼酸西地那非片是什么
  • 网站页头是什么百度怎么做推广和宣传
  • 漳州网站建设公司首选河源市seo点击排名软件价格
  • ui设计和web前端哪个好seo推广软件费用
  • 汽车行业网站建设方案经典seo伪原创
  • 网站设计的价格太原网站建设优化
  • 群晖nas建设网站seo查询百科