You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
sirius_unity_sim/Assets/Scripts/ROSRobotResetPosServer.cs

36 lines
1.1 KiB
C#

using UnityEngine;
using Unity.Robotics.ROSTCPConnector;
using RosMessageTypes.Std;
public class ROSRobotResetPosServer : MonoBehaviour
{
[SerializeField] private string serviceName = "/unity/trigger_event";
[SerializeField] public ResetPosition target;
void Start()
{
// Implement the service handler inside Unity
ROSConnection.GetOrCreateInstance().ImplementService<TriggerRequest, TriggerResponse>(serviceName, HandleTriggerRequest);
}
private TriggerResponse HandleTriggerRequest(TriggerRequest request)
{
// Perform your Unity-side logic here (e.g., reset simulation state)
bool wasSuccessful = TryExecuteUnityAction();
string responseMessage = wasSuccessful ? "Robot's position successfully reset" : "Failed to run Unity reset action";
// Construct and return the response
return new TriggerResponse
{
success = wasSuccessful,
message = responseMessage
};
}
private bool TryExecuteUnityAction()
{
target.startRotation = true;
return true;
}
}