robotics 相关问题

机器人技术是处理机器人的设计,构造,操作,结构配置,制造和应用的技术分支。机器人技术与电子学,工程学,机械学和软件学有关。您也可以考虑在[*机器人*堆栈交换](http://robotics.stackexchange.com/)上提问。

在另一个类中使用对象(需要参数)及其方法

我正在尝试使用 BeagleBone Black 对全向机器人进行编程。我发现 BlackLib 库对于控制引脚非常有效,但我在将其集成到...

回答 1 投票 0

最好的 .NET Micro Framework 开发板是什么,价格低于 300 美元? [已关闭]

我正在寻找一款相对便宜的 .NET Micro Framework 开发板,用于个人机器人项目。我不需要太多 I/O,但我至少需要 1 个串口和 1 个以太网端口...

回答 6 投票 0

Lego Mindstorm NXT、Cocoa 和 HiTechnic 传感器

我已经从这个项目中获取了现有代码,到目前为止非常满意。 然而,我现在需要使用一些从 hitechnic 购买的第三方传感器,

回答 2 投票 0

机器人寻路算法

我有一个机器人,它使用光电鼠标作为位置跟踪。基本上,当机器人移动时,它能够使用鼠标跟踪 X 和 Y 方向的变化。鼠标还跟踪哪个方向...

回答 3 投票 0

运行ros联合状态发布者最终找不到可执行文件

我想跑 ros2运行joint_state_publisher_gui joint_state_publisher_gui 当我运行它时,它说“找不到可执行文件”。 我该如何解决这个问题? 我尝试在网上寻找一些答案,但是...

回答 3 投票 0

为什么我的伺服电机按以下代码不动?

我正在尝试使用unity和arduino之间的串行连接来控制两个伺服电机。 然而,我注意到,虽然 arduino 代码可以工作,但我可以独立为伺服电机供电......

回答 1 投票 0

Mujoco 中的位置控制

作为 Mujoco 的新手,我刚刚在 mujoco 中创建了一个虚拟场景,现在我尝试控制其中的一些对象。该场景包含一个固定桌子,上面放置一本可移动的书,可以是

回答 1 投票 0

从UR5机器人的TCP/IP端口读取数据出现问题

我编写了下面的 MATLAB 代码,从 UR5 的 TCP/IP 30003 端口读取一些数据流。我得到的结果与我的机器人上的结果不同(我使用的是 URSim 3.5.3 Virtual

回答 2 投票 0

使用 swift-sim 进行机器人模拟的客户端应用程序错误

将robotstoolbox导入为rtb 将空间数学导入为 sm 将 numpy 导入为 np 从 Swift 导入 Swift # 制作 Swift 模拟器的实例并打开它 环境 = 斯威夫特() env.launch(实时=True) # ...

回答 1 投票 0

如何在ROS2 Humble中使用ackermann插件

我正在制作 4 轮阿克曼汽车的 urdf 模型。我想使用 ackerman Gazebo 插件,在 github 中我找到了一个使用示例,如下所示: 我正在制作 4 轮阿克曼汽车的 urdf 模型。我想使用 ackerman Gazebo 插件,在 github 中我找到了一个使用示例,如下: <gazebo> <plugin name="gazebo_ros_ackermann_drive" filename="libgazebo_ros_ackermann_drive.so"> <ros> <namespace>ackermann</namespace> <remapping>cmd_vel:=cmd_vel</remapping> <remapping>odom:=odom</remapping> <remapping>distance:=distance</remapping> </ros> <update_rate>100.0</update_rate> <!-- wheels --> <front_left_joint>front_left_joint</front_left_joint> <front_right_joint>front_eight_joint</front_right_joint> <rear_left_joint>rear_left_joint</rear_left_joint> <rear_right_joint>rear_right_joint</rear_right_joint> <left_steering_joint>left_steering_joint</left_steering_joint> <right_steering_joint>right_steering_joint</right_steering_joint> <steering_wheel_joint>steering_joint</steering_wheel_joint> <!-- Max absolute steer angle for tyre in radians--> <!-- Any cmd_vel angular z greater than this would be capped --> <max_steer>0.6458</max_steer> <!-- Max absolute steering angle of steering wheel --> <max_steering_angle>7.85</max_steering_angle> <!-- Max absolute linear speed in m/s --> <max_speed>20</max_speed> <!-- PID tuning --> <left_steering_pid_gain>1500 0 1</left_steering_pid_gain> <left_steering_i_range>0 0</left_steering_i_range> <right_steering_pid_gain>1500 0 1</right_steering_pid_gain> <right_steering_i_range>0 0</right_steering_i_range> <linear_velocity_pid_gain>1000 0 1</linear_velocity_pid_gain> <linear_velocity_i_range>0 0</linear_velocity_i_range> <!-- output --> <publish_odom>true</publish_odom> <publish_odom_tf>true</publish_odom_tf> <publish_wheel_tf>true</publish_wheel_tf> <publish_distance>true</publish_distance> <odometry_frame>odom</odometry_frame> <robot_base_frame>base_footprint</robot_base_frame> </plugin> </gazebo> 我的问题出在关节上,因为我制作了 4 个连续关节来使车轮滚动,并制作了两个旋转关节来使前轮沿 z 轴旋转。这 4 个关节是您在插件标签中可以看到的前四个关节。我的问题是,方向盘接头到底是什么?我必须把它放在哪里以及它应该如何连接到汽车的其他部分?如果我删除它,我实际上不会收到错误消息,但我的所有车轮都会在汽车下方移动到中心。如果我只在 Rviz 上显示 urdf,该模型似乎不错。我的 urdf 结构由车身的 base_link、4 个轮子和 base_footprint 组成。 这是仅使用Rviz推出的型号: 这是我启动 Gazebo 和插件的时候: 一般来说,ackermann_drive插件的工作原理是订阅名为cmd_vel(或者使用不同的名称,如果您在 urdf 文件中重新映射)类型为 geometry_msgs::msg::Twist 的主题,这意味着包含目标线速度和整车的目标横摆率。基于此目标,使用您在urdf中设置的 PID 控制器为驱动轮和方向盘生成单独的扭矩命令。 从这个意义上说,这里没有方向盘,你是用这个扭转命令来转向的。根据我通过查看代码的理解,steering_wheel_joint并不是严格需要的,但您不应该删除它,因为,正如您所注意到的,整个链接/关节结构受到损害。我猜想,如果您有一些链接连接到 steering_wheel_joint,那么它将被渲染为实际的方向盘,来自左右方向盘的平均值(与物理现实中发生的情况相反) ). 要查找此内容,您实际上应该打开插件文件gazebo_ros_ackermann_drive.cpp 只是一个片段(第 533-543 行,来自我的评论): // computing the steering wheel angle averaging left and right auto steer_wheel_angle = (left_steering_angle + right_steering_angle) * 0.5 / steering_ratio_; // setting the steer torque on the steering wheels joints_[STEER_LEFT]->SetForce(0, left_steering_cmd); joints_[STEER_RIGHT]->SetForce(0, right_steering_cmd); // setting the driving torque on the driving wheels joints_[REAR_RIGHT]->SetForce(0, linear_cmd); joints_[REAR_LEFT]->SetForce(0, linear_cmd); if (joints_.size() == 7) { // setting the steer angle joints_[STEER_WHEEL]->SetPosition(0, steer_wheel_angle); } 另外(第 224-229 行): // if the steering_wheel_joint is deleted if (!impl_->joints_[GazeboRosAckermannDrivePrivate::STEER_WHEEL]) { RCLCPP_WARN( impl_->ros_node_->get_logger(), "Steering wheel joint [%s] not found.", steering_wheel_joint.c_str()); // the joints are potentially messed up impl_->joints_.resize(6); } 如需更详细的答案,我需要您提供更多详细信息:) 希望这能有所帮助

回答 1 投票 0

Scara 机器人逆运动学

我正在开发一个由 Arduino 控制的 Scara 机器人,并试图找出逆运动学。我编写了一个简单的示例草图来测试我的功能,但由于

回答 1 投票 0

水弹性接触和稳健的接触生成

我对物理模拟和机器人问题的稳健接触生成非常感兴趣。我知道 Drake 的水弹性接触模块 [1,2],它为 mod 提供了一种优雅的方法...

回答 1 投票 0

过滤掉 pydrake 中的错误碰撞

在我们的机器人项目中,我们使用 pydrake 查询对象来检查 iiwa 手臂中是否发生碰撞(这对于我们的 RRT 来说是必要的,并且对于双重检查我们的逆向输出非常有用

回答 1 投票 0

为什么机器人会一直跑?是不是陷入了循环?

我将 FTC 机器人设置为使用编码器向前驱动 100 个刻度,但它会连续驱动直到 opmode 停止。代码里调整速度好像也不起作用,卡在...

回答 1 投票 0

我的 FTC 电机持续运转,有什么想法吗?

这是我的程序。为什么它一直在移动而不是停止?我没有看到任何明显的问题,电机只是继续转动而不停止。 包 org.firstinspires.ftc.teamcode.drive....

回答 1 投票 0

有没有办法将本地 SDF 文件包含在 pydrake 的场景 YAML 文件中?

在开发我们的机器人项目时,我们希望混合使用我们自己编写的本地 SDF 文件以及来自 pydrake/manipulation 包的文件。我们在...中找到的所有 yaml 文件示例

回答 1 投票 0

Raspberry Pi 与 PC 之间的 ROS2 节点通信无法正常工作

通过SSH连接Raspberry Pi和PC后,我安装了ROS2 Foxy。然而,当尝试使用发送器和监听器节点时,PC 到 PC 或 Raspberry Pi 到 Raspberry Pi 之间的通信可以正常工作,但是

回答 1 投票 0

Python 项目,用于在 10 x 10 网格中移动的机器人,有一些额外的要求

我有一个用 Python 编写代码的项目,该代码将控制机器人在 10 x 10 网格中的运动。首先我想指出,我是一个初学者,所以如果我能获得 sim 对我来说会更好......

回答 1 投票 0

ROS move_base 节点正在生成 Hydro 前警告

我正在使用导航堆栈中的 move_base 。但是,我收到警告 “local_costmap:自提供“插件”以来未使用 preHydro 参数“static_map”” 就成本图而言

回答 1 投票 0

用于机器人拧紧的输送机上的实时物体跟踪和孔检测

我正在从事一个工厂自动化项目,希望了解传送带上对象跟踪的可行性。 目前,工人手动拿起一个螺栓并将其拧到一个物体的孔上......

回答 1 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.