v1.14.0版本 舵机控制没有响应

Up_lhhhhhh 2024-01-16 11:47:42

先贴代码

.h 文件

	...
#include <uORB/topics/actuator_servos.h>
    ...

private:
    ...

// 新增:发布到actuator_servos的发布者
   	orb_advert_t _actuator_servos_pub{nullptr};

	// 舵机中位PWM值,通常是1500微秒
	float servo_middle = 1500.0f;

	// 舵机通道常量
	static constexpr int SERVO_CHANNEL_5 = 4;
	static constexpr int SERVO_CHANNEL_6 = 5;


    ...

.cpp文件

bool Servo_ctl::init()
{
	ScheduleOnInterval(50000_us); //设置重复间隔
	return true;
}


bool Servo_ctl::Run(){
...

	// 创建actuator_servos消息
	actuator_servos_s servos = {};
	servos.timestamp = hrt_absolute_time();


	// 舵机中位PWM值,通常是1500微秒
	servo_middle += 100.0f;
	if(servo_middle > 2000)
		servo_middle  = 1500;

	// 设置舵机到指定位置
	servos.control[SERVO_CHANNEL_5] = servo_middle;
	servos.control[SERVO_CHANNEL_6] = servo_middle;


	// 发布actuator_servos消息
	if (_actuator_servos_pub == nullptr) {
		_actuator_servos_pub = orb_advertise(ORB_ID(actuator_servos), &servos);
	} else {
		orb_publish(ORB_ID(actuator_servos), _actuator_servos_pub, &servos);
	}

...
}

已经将这个工作队列设置为上电自启动,自启动正常。

场景:四旋翼机型基础上加装两个舵机控制,实现舵机的往复运动

因为版本更新后取消了mixer文件,应该如何设置使得舵机正常运动???

 

...全文
411 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
超维空间科技 2024-01-16
  • 打赏
  • 举报
回复

新版固件需要设置control allocate输出,然后使用offbord的控制接口即可

Up_lhhhhhh 2024-01-16
  • 举报
回复
@超维空间科技 谢谢! control allocate输出,是不是需要自定义机型才可以对Servo进行设置啊?

8,493

社区成员

发帖
与我相关
我的任务
社区描述
超维空间科技交流学习社区
无人机开源 技术论坛(原bbs) 江苏省·南京市
社区管理员
  • 超维空间科技
  • 超维空间—南京分维
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

每天晚上9点前的提问当天解答,9点后的提问第二天解答

提问前请先搜索以前的贴子,以免重复提问

试试用AI创作助手写篇文章吧