M1M1 试用记录

1、复制文件至SRC目录。
slamware_ros_sdk 与 slamware_sdk
都要复制,编译成功。
在这里插入图片描述2、设备有开个,20秒后雷达转动。

3、插上网网线至M1M1, 有线网卡地址为192.168.11.200,应该是
M1M1 分配的,ping 192.168.11.1 正常。

4、修改slamware_ros_sdk_server_node.launch 文件内的网络地址
至192.168.11.1。

5、 运行slamware_ros_sdk_server_and_view.launch 一切正常。
能出地图了。

6、有线无线同时上网,关闭有线网关。
一、查看当前网关信息
pipci@ubuntu:~$ ip route show
default via 192.168.2.1 dev enp2s0 proto static metric 100
default via 192.168.8.1 dev wlp3s0 proto static metric 600
169.254.0.0/16 dev wlp3s0 scope link metric 1000
192.168.2.0/24 dev enp2s0 proto kernel scope link src 192.168.2.120 metric 100
192.168.8.0/24 dev wlp3s0 proto kernel scope link src 192.168.8.5 metric 600
可以看到前两行default开头的就是默认网关。
192.168.2.1是我的有线网关,192.168.8.1是wifi网关。
默认有线网关的优先级更高所以导致无线不能上外网。

二、设置文件
在做嵌入式开发过程中,需要用有线网连接电脑和开发板,用有线网络进行通信和控制,但同时宿主机通过无线网连接互联网,网上的设置静态IP方法大多数设置完有线网IP后无线网无法连接。
为在设置有线网卡IP同时不影响无线网络,思想是不设置有线网网关;

我的有线网卡为 enp6s0
想要设置其IP为192.168.100.100
sudo gedit /etc/network/interfaces
在文件后加入
auto enp6s0
iface enp6s0 inet static
address 192.168.100.100
netmask 255.255.255.0
broadcast 192.168.100.255
不要加入 gateway
重启即可。
三、我的文件
sudo gedit /etc/network/interfaces
文件内容:(修改后)
#interfaces(5) file used by ifup(8) and ifdown(8)
auto lo
iface lo inet loopback
#auto eth0 inet dhcp

auto enp2s0
iface enp2s0 inet static
address 192.168.11.9
netmask 255.255.255.0
broadcast 192.168.11.255
四、重启网络
sudo /etc/init.d/networking restart
还是要重启计算机才行。2台都成功,4200 和 4012y。
注意还要修改:luanch 文件的slamware 的网络地址192.168.11.1。

2、记录:

原始话题:
在这里插入图片描述

原始TF:
在这里插入图片描述
原始launch:
在这里插入图片描述
修改launch “fixed_odom_map_tf” 为false 后,topic 无变化,tf发生改变。
在这里插入图片描述
修改launch如下:
在这里插入图片描述
TF 如下:
在这里插入图片描述
同时启动dwa,后TF在这里插入图片描述
ROSTOPIC:
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
修改launch文件,同时启动三个launch。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
目前这个launch,正常。
20191127:增加了SCAN_CUT 包,发现经常出现Buffer_overflow_flag,将my_serial_node的ros::Rate loop_rate(60);设置为60,略有改善。
但以前是正常的,几乎不会出现溢出报警,不同的有2:
1、增加了SCAN_CUT 包,
2、硬件上又增加了一个陀螺仪。软件还未调试。
继续调试,排除此现象。(串口数据量太大方向)。

调试:1、调试ALUBI 陀螺仪软件,能正常工作,溢出有改善。
2、将my_serial_node的ros::Rate loop_rate(100);设置为100,溢出消失,短时还未出现。

2、CARTO工作提示信息,确实用到了SCAN、/IMU、ODOM

在这里插入图片描述
警告提示、错误提示。
在这里插入图片描述
修改1:解决了出错问题。
在这里插入图片描述
修改2:解决了报警问题。(方法:最新启动carto、再启动mydev、最后启动slamware)
无报警了。sdwa、sgmap 的launch 启动顺序未修改,目前正常。
在这里插入图片描述

三个陀螺仪性能比较:

三个分别输出IMU话题:分别为 imu、imu_alubiI、imu_wt901c。
写个程序、进行监控,看长时间工作后,谁更准。

#include <ros/ros.h>
#include <sensor_msgs/Imu.h>
#include "tf/tf.h"

ros::Subscriber Sub_imu;
ros::Subscriber Sub_imu_alubi;
ros::Subscriber Sub_imu_wt901c;

double hi216_yaw;
double alubi_yaw;
double wt901c_yaw;

void callBack_imu(const sensor_msgs::Imu &imu_msg)
{
	tf::Quaternion quat;
	double roll,pitch,yaw;
	
	tf::quaternionMsgToTF(imu_msg.orientation,quat);
	tf::Matrix3x3(quat).getRPY(roll,pitch,yaw);
	hi216_yaw = yaw;

}

void callBack_imu_alubi(const sensor_msgs::Imu &imu_msg)
{
	tf::Quaternion quat;
	double roll,pitch,yaw;
	
	tf::quaternionMsgToTF(imu_msg.orientation,quat);
	tf::Matrix3x3(quat).getRPY(roll,pitch,yaw);
	alubi_yaw = yaw;
}

void callBack_imu_wt901c(const sensor_msgs::Imu &imu_msg)
{
	tf::Quaternion quat;
	double roll,pitch,yaw;
	
	tf::quaternionMsgToTF(imu_msg.orientation,quat);
	tf::Matrix3x3(quat).getRPY(roll,pitch,yaw);
	wt901c_yaw = yaw;
}

int main (int argc, char** argv) 
{ 
    //初始化节点 
    ros::init(argc, argv, "serial_example_node"); 
    //声明节点句柄 
    ros::NodeHandle nh; 
    //订阅主题,并配置回调函数 

    Sub_imu = nh.subscribe("imu",512,callBack_imu);
    Sub_imu_alubi = nh.subscribe("imu_alubi",512,callBack_imu_alubi);
    Sub_imu_wt901c = nh.subscribe("imu_wt901c",512,callBack_imu_wt901c);

    ros::Rate loop_rate(1);
    while(ros::ok()) 
    { 
		ROS_INFO("hi216_yaw = %f",(float)hi216_yaw);
		ROS_INFO("alubi_yaw = %f",(float)alubi_yaw);
		ROS_INFO("wt901c_yaw = %f",(float)wt901c_yaw);
		ros::spinOnce();
        loop_rate.sleep();
	}
}

陀螺仪比较:最好的是hi216,lmps不行,甚至比WT901C,还差。

排除了:AMCL 定位漂移。

原因:my_serial节点由于缓冲区大,导致数据IMU和里程数据滞后严重,诱发因素应该是使用软路由器,
或性能差的小型路由器,导致CPU载荷增大,使这个隐患显露出来。

本地代价地图经常出现干扰点,后来发现是启动了超声,原来以为是雷达问题。
my_serial_node 程序经常出现译码错误,感觉程序优先级低,有时启动正常,有时经常出现译码错误。
这个还需改进程序,找到原因。

目前为止,在DWA导航过程中未发生TF超时,cpu也降到25%以下(有几个凳子障碍物),原因不明,继续观察。20191208。

开始ROS msg 测试:

话题:
/slamware_ros_sdk_server_node/add_line
/slamware_ros_sdk_server_node/add_lines
/slamware_ros_sdk_server_node/basic_sensors_info
/slamware_ros_sdk_server_node/basic_sensors_values
/slamware_ros_sdk_server_node/cancel_action
/slamware_ros_sdk_server_node/clear_lines
/slamware_ros_sdk_server_node/clear_map
/slamware_ros_sdk_server_node/global_plan_path
/slamware_ros_sdk_server_node/go_home
/slamware_ros_sdk_server_node/map
/slamware_ros_sdk_server_node/map_metadata
/slamware_ros_sdk_server_node/move_by_direction
/slamware_ros_sdk_server_node/move_by_theta
/slamware_ros_sdk_server_node/move_line
/slamware_ros_sdk_server_node/move_lines
/slamware_ros_sdk_server_node/move_to
/slamware_ros_sdk_server_node/move_to_locations
/slamware_ros_sdk_server_node/odom
/slamware_ros_sdk_server_node/recover_localization
/slamware_ros_sdk_server_node/remove_line
/slamware_ros_sdk_server_node/robot_basic_state
/slamware_ros_sdk_server_node/robot_device_info
/slamware_ros_sdk_server_node/rotate
/slamware_ros_sdk_server_node/rotate_to
/slamware_ros_sdk_server_node/scan
/slamware_ros_sdk_server_node/set_map_localization
/slamware_ros_sdk_server_node/set_map_update
/slamware_ros_sdk_server_node/set_pose
/slamware_ros_sdk_server_node/sync_map
/slamware_ros_sdk_server_node/virtual_tracks
/slamware_ros_sdk_server_node/virtual_walls
消息:

 zjz@zjz-desktop:~/rsvel/socket_sh$ rostopic info /slamware_ros_sdk_server_node/clear_map
Type: slamware_ros_sdk/ClearMapRequest

Publishers: None

Subscribers: 
 * /slamware_ros_sdk_server_node (http://zjz-desktop:40272/)

在这里插入图片描述在这里插入图片描述
在这里插入图片描述

最后成功命令:

在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值