Radar Sample with CAN-based Conti ARS430

Hardware Platform: DRIVE AGX Pegasus™ Developer Kit
**Software Version:**DRIVE Software 10
Host Machine Version: native Ubuntu 18.04
SDK Manager Version: 1.3.1.7110

Hi,

I am trying to connect a CAN-based Continental ARS_430FM sensor with Driveworks SDK and the SAL. In sample_sensors_info I found that there is also a radar.can protocol:

Sensor [30] : radar.can ? can-driver=can.xxx,can-bus=xxx,can-base-id=0x460,device={CONTINENTAL_ARS430_CAN}[,aurix-can-ip=X.X.X.X.X],[aurix-can-aport=XXXX][,aurix-can-bport=XXXX][,virtual-file=filepath.bin][,time-smoothing=false]

The sample starts but does not show any detections or tracks, even though on the CAN-interface there are object messages coming. Part of the problem is that a can-base-id has to be defined as a parameter and I do not know what this parameter actually does since I could not find any documentation about the radar.can interface. I tried several ID’s according to the specification of the sensor but none of them produced any visible results.

Can someone give me more information on that parameter or is there any further documentation of the radar.can interface available?

Thanks,
Christian

Hi @cschro,

I’m not familiar with ARS430 but below are code snippets of the driver. FYR!

static const uint32_t ARS_CAN_LRR_OBJECT_INFO_5_OFFSET  = 0x1f;

Status DecoderContinentalARS430CAN::validatePacket(const char* buffer, size_t length, dwRadarScanType* scanType)
{
    if (length < sizeof(dwCANMessage))
    {
        throw dw::core::Exception(DW_INVALID_ARGUMENT, "invalid packet length");
    }

    scanType->returnType = DW_RADAR_RETURN_TYPE_TRACK;
    scanType->range      = DW_RADAR_RANGE_UNKNOWN;

    const dwCANMessage* message = reinterpret_cast<const dwCANMessage*>(buffer);
    if (message->id >= m_baseCanId &&
        (message->id <= (m_baseCanId + ARS_CAN_LRR_OBJECT_INFO_5_OFFSET)))
    {
        return DW_SUCCESS;
    }
    else
    {
        return DW_FAILURE;
    }
} 

Thanks for the quick answer and the code snippet!

As far as I understand the can-base-id for our sensor should then be 0x600, something else does not make sense to me so far. However, we have tried this value and did not achieve any results with sample_radar_replay. We can however confirm that the sensor is sending object messages with the id as specified in the dbc-file via candump.

Most interesting to me would be the section of the driver where the object-msgs are read and converted into DW radar return types. I would like to validate that the correct ids are used and if our sensor should be compatible with this driver. Would you be able to share that code as well?

I understand that Conti has many different versions of their ARS430 even though I would expect the CAN-interface to be compatible across different models/version.

Please contact with Continental to know if the one you are using is compatible with DRIVE AGX platform. At the same time, could you try to use it as a Ethernet radar with sample_radar_replay?

Where does this snippet come from? Drive doesn’t support CAN radars, but this is clearly a CAN based implementation. Is it available somewhere for reference?
As there is no radar plugin example at all, it is very hard to implement a CAN based radar by ourselves…

Hi @f.petry ,

The code snippet is internal code and not released. If you have any specific questions from the implementation, please create another topic.

Also, please see if the course is helpful.