露台定制插件:阅读接触位置,其中包含一个可变大小的元素和一个sub-buses数组

2视图(30天)
你好,
我厌倦了使用定制的露台插件模型和露台的虚拟机(Ubuntu)。金宝app
露台的虚拟机之间的通信工程和仿真软件。金宝app
然而,当我试着读contact-positions信息(多个联系人),出现如下所示的错误。
模拟1
04:28我时间:3秒
诊断1
01:52我时间:20秒
模拟1
01:52我时间:2秒
模拟1
02:30。我时间:3秒
模拟1
02:31我时间:3秒
总线对象“Gazebo_SL_Bus_gazebo_msgs_custom_gazebo_msgs_Contacts”联系在一起
块“gazeboCosimControl_ys_v3 /露台机器人/总线Selector13”既包含一个变量大小的元素
一个sub-buses数组。公交车不能用于数组与总线的对象
包含可变大小的元素。
组件:仿真软件|类别:金宝app块错误
此外,contact-positions有以下基于露台模拟变量大小的元素。我的意思是可以包括多个联系人信息如下所示。
为了解决这个问题,我试图用有关“公共汽车”等几个街区,总线向量,虚拟总线,总线选择器,等等,但我不能解决它。
为了解决这个问题你有什么建议吗?
提前谢谢你,

接受的答案

Gaurav Bhosale
Gaurav Bhosale 2021年6月28日
嗨Yunsik,
联系信息和我创建了仿金宝app真软件模型能够订阅联系消息数据。启用这个,我做了以下更改。
1]联系人信息是repeatative所以你必须改变一些信息如下。
你应该改变尺寸按照你消息长度。还有,别忘了DimesnionMode改为“变量”(以红色突出显示)。联系人信息不断改变它的大小应变量。确保,你所有后更改。
联系
JointWrench
时间
Vector3d
2)仿真软件模金宝app型如下,
基本上,你得到数组形式的值。例如如果接触消息包含14联系消息/细节,哪些你认为重复字段在protobuf但在仿真软件,这些消息以数组形式如上所示。金宝app
在上面图中,< x >包含Wrench.force。x以数组形式,每个索引定义的力量。为每个身体x值。
你可以单独的这些值在MATLAB函数。
谢谢。
1评论
Yunsik荣格
Yunsik荣格 2021年6月29日
嗨,Gaurav !
太棒了!我解决了这个问题你的评论!感谢你详细的评论。
我明白你提到我需要创建MATLAB函数将数组形式的x值。
我有一个问题,你是怎么将身体ids body_1_name真实姓名如下所示?
你能让我知道如何编写MATLAB函数转换吗?
非常感谢,再次!

登录置评。

更多的答案(2)

Gaurav Bhosale
Gaurav Bhosale 2021年6月14日
嗨Yunsik,
你可以直接得到的位置。13 x在总线选择器选择/扩大在总线选择器。
任何特定的理由有两个总线选择器?
2的评论
Yunsik荣格
Yunsik荣格 2021年6月27日
嗨,Gaurav。
除了之前的,我有附加的联系人的信息。
我的露台模型有三指机器人的手,红框。
我publiched 3联系人的指尖(只有一个联系每个)和ultiple联系人的红色盒子。所以,3 fignertips的接触只有一个接触红盒子(掌握)和红盒子有多个联系人的联系(指尖和地面),如下所示。
1。接触finger_tip_3和redbox(只有一个接触点)
联系{
collision1:“redBox::链接::collision_redbox”
collision2:“m1n6s300:: m1n6s300_link_finger_tip_3:: m1n6s300_link_finger_tip_3_collision”
位置{
x: -0.056632018674152892
y: -0.42469795648780345
z: 0.024875600778013502
}
正常的{
x: 0.71547922093255889
y: 0.69863401284489779
z: -2.2582601418741355 e-05
}
深度:2.6248854961830048 e-06
扳手{
body_1_name:“redBox::链接::collision_redbox”
body_1_id: 87
body_2_name:“m1n6s300:: m1n6s300_link_finger_tip_3:: m1n6s300_link_finger_tip_3_collision”
body_2_id: 80
body_1_wrench{
{
x: 0.014795303048279591
y: 0.014795332132892173
z: 0.0053169421890235311
}
转矩{
x: -0.00031781571041421079
y: 0.00052897689231761564
z: -0.00057880936339234552
}
}
body_2_wrench{
{
x: -0.016402243505716788
y: 0.006562379650485198
z: 0.012408638150760567
}
转矩{
x: -0.00013880548958348924
y: -0.00037148702808840225
z: 1.6748865645205459 e-05
}
}
}
时间{
证监会:4
nsec: 735000000
}
世界:“默认”
}
2。redbox和地面之间的联系(4个联系人4角与地面接触点的redbox)
联系{
collision1:“redBox::链接::collision_redbox”
collision2:“ground_plane::链接::碰撞”
位置{
x: 0.02939663887442602
y: -0.41976679972114284
z: -0.0010024591704583879
}
位置{
x: -0.016014571965647303
y: -0.37326065034375422
z: -0.0010021036116875867
}
位置{
x: -0.017109510486190312
y: -0.46517801055606117
z: -0.0010009913013661698
}
位置{
x: -0.062520721326263629
y: -0.4186718611786725
z: -0.0010006357425953684
}
正常的{
x: 0
y: 0
z: 1
}
正常的{
x: 0
y: 0
z: 1
}
正常的{
x: 0
y: 0
z: 1
}
正常的{
x: 0
y: 0
z: 1
}
深度:0.0010024591704583877
深度:0.0010021036116875865
深度:0.0010009913013661696
深度:0.0010006357425953686
扳手{
body_1_name:“redBox::链接::collision_redbox”
body_1_id: 87
body_2_name:“ground_plane::链接::碰撞”
body_2_id: 6
body_1_wrench{
{
x: -0.0099168260074715825
y: -0.15414536541210239
z: 0.0051114027837605869
}
转矩{
x: -0.0048436041801116526
y: 0.00013869861625245231
z: -0.0046874274350454607
}
}
body_2_wrench{
{
x: -0.11546865061100736
y: -0.10194895975105885
z: 0.097101250287424251
}
转矩{
x: 5.5136706719713968 e-05
y: -0.0026114362799532307
z: -0.00256949188362319
}
}
}
扳手{
body_1_name:“redBox::链接::collision_redbox”
body_1_id: 87
body_2_name:“ground_plane::链接::碰撞”
body_2_id: 6
body_1_wrench{
{
x: -0.014632258645478114
y: -0.1611667945219985
z: -0.00478341549577067
}
转矩{
x: 0.0050824604845255868
y: -0.00029058800275445535
z: -0.0047623725773526075
}
}
body_2_wrench{
{
x: 0
y: 0
z: 0
}
转矩{
x: 0
y: 0
z: 0
}
}
}
扳手{
body_1_name:“redBox::链接::collision_redbox”
body_1_id: 87
body_2_name:“ground_plane::链接::碰撞”
body_2_id: 6
body_1_wrench{
{
x: -0.01805132048700674
y: -0.11857466637778853
z: -0.010768050052411758
}
转矩{
x: -0.00420363806484793
y: 0.000246409935476471
z: 0.00444034452002559
}
}
body_2_wrench{
{
x: 0
y: 0
z: 0
}
转矩{
x: 0
y: 0
z: 0
}
}
}
扳手{
body_1_name:“redBox::链接::collision_redbox”
body_1_id: 87
body_2_name:“ground_plane::链接::碰撞”
body_2_id: 6
body_1_wrench{
{
x: -0.025064265061970528
y: -0.1259532718739578
z: 0.0056684156029513828
}
转矩{
x: 0.004277704992998249
y: -0.00062372288349323588
z: 0.0049080699140838045
}
}
body_2_wrench{
{
x: 0
y: 0
z: 0
}
转矩{
x: 0
y: 0
z: 0
}
}
}
时间{
证监会:4
nsec: 735000000
}
世界:“默认”
}
时间{
证监会:4
nsec: 736000000
}
即使我试图得到一个联系信息(finger_tip_3和redbox之间),像上面我得到同样的错误消息。
你会让我知道如果有任何误解或错误的设置?
谢谢你的支持!金宝app
最好的,

登录置评。


Gaurav Bhosale
Gaurav Bhosale 2021年6月29日
嗨Yunsik,
添加的MATLAB函数块的仿真软件,并添加以下代码行功能金宝app
函数y = fcn (u)
y =字符串(char (u '));
谢谢
1评论
Yunsik荣格
Yunsik荣格 2021年6月30日
编辑:Yunsik荣格 2021年7月3日
嗨,Gaurav。
非常感谢你的帮助!
然而,当我试图使用MATLAB函数转换它,我得到了一个错误。
我提交了另一个问题来解决这个错误:
//www.tatmou.com/matlabcentral/answers/869593-gazebo-customized-plugin-read-the-body-names-of-contacts
谢谢,

登录置评。

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!