物联网机器人使用越来越多,高校相关课程方向已经全面融入类似esp8266,esp32等用作单片机课程讲授。
中小学也在逐步普及智能硬件项目,如何将嵌入式物联网设备装载强大的智能算法,如何将其应用于机器人实现更加多元丰富的案例呢?
tianbotmini模型 tianbotmini实物机器人操作系统必不可少!现在ROS1和ROS2安装已经非常简单快捷了,详细内容参考如下链接:
-
微软物联网Github:https://github.com/ms-iot
之前在Linux下大部分案例可以愉快方便的移植到windows系统环境下,ros官方最先支持的是turtlebot,当然tianbotmini也自然能够在windows,macos和linux下正常调试和使用的。下面以此为例简要介绍一下过程。
目前,电脑配置如下版本ROS:
ros-windows课程讲授需要测试过的ROS第三方功能包,非核心库,核心包随ROS安装自动加载。
ros_ws编译tianbotmini功能包
cmd配置:
C:\Windows\System32\cmd.exe /k "C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\Common7\Tools\VsDevCmd.bat" -arch=amd64 -host_arch=amd64 && c:\opt\ros\melodic\x64\setup.bat && cd C:\ros_ws\
大力双击桌面图标打开:
双击即可进入机器人调试环境以ROSMelodic为例界面如下:
默认路径为ros_ws进入tianbotmini文件夹编译使用:
100%无误配置网络:
IP查看主机IP地址。
设置参数启动tianbotmini:
- roslaunch tianbot_mini bringup.launch
机器人无法移动,排查错误:
主题列表未发现与机器人相关列表,为什么?为什么?为什么?
原因如下,IP不匹配:
详细参数界面需要在此处注意,ROS_IP为 192.168.2.101 !!!修改主机IP,并重新配置。
配置修改后,重新启动 熟悉的主题列表出来了这时候,就可以愉快遥控机器人运动了哦。
图形化速度指令发布 rviz同时在rviz中显示也一切正常哦。
更多玩法参考其他博文,持续更新中。
本文涉及代码:
bringup.launch:
<launch>
<!-- 迷你机器人,基础参数 -->
<arg name="robot_name" default="tianbot_mini" />
<!-- 迷你机器人,通信驱动 -->
<node pkg="rosserial_server" type="socket_node" name="tianbot_mini" output="log"/>
<!-- 迷你机器人模型 -->
<include file="$(find tianbot_mini_description)/launch/model.launch.xml">
<arg name="robot_name" value="$(arg robot_name)" />
</include>
</launch>
socket_node.cpp
#include <boost/asio.hpp>
#include <boost/bind.hpp>
#include <boost/thread.hpp>
#include <ros/ros.h>
#include "rosserial_server/tcp_server.h"
int main(int argc, char* argv[])
{
ros::init(argc, argv, "rosserial_server_socket_node");
int port;
ros::param::param<int>("~port", port, 11411);
boost::asio::io_service io_service;
rosserial_server::TcpServer<> tcp_server(io_service, port);
ROS_INFO_STREAM("Listening for rosserial TCP connections on port " << port);
io_service.run();
return 0;
}
model.launch
<launch>
<!-- 迷你机器人,基础参数 -->
<arg name="robot_name" default="tianbot_mini" />
<!-- TF坐标变换,基础参数 -->
<arg name="base_frame_id" default="$(arg robot_name)/base_link" />
<node pkg="tf" type="static_transform_publisher" name="tbm_base_link_to_urdf_base_link" args="0 0 0 0 0 0 $(arg base_frame_id) base_link 100" />
<arg
name="model" />
<arg
name="gui"
default="False" />
<param
name="robot_description"
textfile="$(find tianbot_mini_description)/urdf/tianbot_mini_description.urdf" />
<param
name="use_gui"
value="$(arg gui)" />
<node
name="joint_state_publisher"
pkg="joint_state_publisher"
type="joint_state_publisher" />
<node
name="robot_state_publisher"
pkg="robot_state_publisher"
type="robot_state_publisher" />
</launch>
-Fin-
来源:oschina
链接:https://my.oschina.net/u/4284954/blog/4697194