Search code examples
rosdji-sdknvidia-jetsonpx4

Is it possible to control in velocity the DJI M210 drone throught the UART port with NVIDIA Jetson TX2?


I would like to use a DJI M210 drone for mapping. I'm actually using a LiDAR and the SLAM algorithm to map a GPS-denied environment. I would like to know, if someone knows, is it possible to control the drone in velocity, without the GPS (I would send Odometry to the drone from SLAM). I've read that the velocity control from DJI is only done by the GPS interpretation.


Solution

  • It is possible to control the method using only local coordinate system. I tested with various SLAM on various DJI drone/FCU with all kind of PC TK1 TX2 UPsqare NUC Manifold1 and 2(both cpu and gpu). Only problem is that you cant use the GPS mission way.

    Use raw command way. remove all GPS related

    sensor_msgs::Joy controlVelYawRate;
    uint8_t flag = (DJISDK::VERTICAL_VELOCITY   |
                DJISDK::HORIZONTAL_VELOCITY |
                DJISDK::YAW_RATE            |
                DJISDK::HORIZONTAL_GROUND   |
                DJISDK::STABLE_ENABLE);
    controlVelYawRate.axes.push_back(y);
    controlVelYawRate.axes.push_back(p);
    controlVelYawRate.axes.push_back(r);
    controlVelYawRate.axes.push_back(t);
    controlVelYawRate.axes.push_back(flag);
    
    ctrlBrakePub.publish(controlVelYawRate);