Esempio n. 1
0
    void Start()
    {
        // Create car objects and subscriber/rosconnector for each car
        cars          = new List <GameObject>();
        rosInterfaces = new List <GameObject>();
        numSamePos    = new List <int>();
        prevPos       = new List <Vector3>();

        for (int i = 0; i < numCars; i++)
        {
            GameObject car = Instantiate(Resources.Load("Prefabs/Car_" + i)) as GameObject;
            car.name = "Car_" + i;
            car.transform.localScale = new Vector3(2.5f, 2.5f, 2.5f);
            car.transform.position   = new Vector3(0f, wheelOffset, 0f);
            car.SetActive(false);

            BoxCollider boxCollider = car.AddComponent(typeof(BoxCollider)) as BoxCollider;

            if (egoCarNum == i)
            {
                egoCarGoal = new GameObject();
                egoCarGoal.transform.position = initPosition;

                PoseStampedPublisher poseStampedPublisher = egoCarGoal.AddComponent(typeof(PoseStampedPublisher)) as PoseStampedPublisher;
                poseStampedPublisher.Topic = "/car/" + i + "/nav/goal";
                poseStampedPublisher.PublishedTransform = egoCarGoal.transform;

                EgoCarEvaluationInterface evaluationInterface = car.AddComponent(typeof(EgoCarEvaluationInterface)) as EgoCarEvaluationInterface;
                LineRenderer lineRenderer = car.AddComponent(typeof(LineRenderer)) as LineRenderer;

                Rigidbody rigidBody = car.AddComponent(typeof(Rigidbody)) as Rigidbody;
                car.GetComponent <Rigidbody>().isKinematic = true;
            }

            car.SetActive(true);
            cars.Add(car);
            prevPos.Add(car.transform.position);
            numSamePos.Add(0);

            GameObject rosInterface = new GameObject();
            rosInterface.name = "RosInterface" + i;
            rosInterface.transform.position = new Vector3(0f, 0f, 0f);
            rosInterface.SetActive(false);

            RosConnector rosConnector = rosInterface.AddComponent(typeof(RosConnector)) as RosConnector;
            rosConnector.Protocol           = RosConnector.Protocols.WebSocketSharp;
            rosConnector.Timeout            = 10;
            rosConnector.RosBridgeServerUrl = url;
            rosConnector.Awake();

            PoseStampedSubscriber poseStampedSubscriber = rosInterface.AddComponent(typeof(PoseStampedSubscriber)) as PoseStampedSubscriber;
            poseStampedSubscriber.TimeStep           = 0.1f;
            poseStampedSubscriber.Topic              = "/car/" + i + "/pose";
            poseStampedSubscriber.PublishedTransform = rosInterface.transform;
            poseStampedSubscriber.Awake();

            rosInterface.SetActive(true);
            rosInterfaces.Add(rosInterface);
        }
    }
Esempio n. 2
0
 public Navigation(string name)
 {
     base.init(name);
     velocityPublisher = new TwistPublisher("/cmd_vel");
     odomSubscriber    = new OdomSubscriber("/odom", 50);
     navMapPublisher   = new PoseStampedPublisher("/move_base_simple/goal");
     scanSubscriber    = new LaserScanSubscriber("/scan", 500);
 }
Esempio n. 3
0
 private void Awake()
 {
     timeWindow               = HumanStateManager.instance.timeWindow;
     timeSinceLastAction      = 0;
     kuriEmoteStringPublisher = FindObjectOfType <KuriEmoteStringPublisher>();
     poseStampPublisher       = FindObjectOfType <PoseStampedPublisher>();
     kuriGoalPoseTransform    = transform.GetChild(0);
     kuriCurPoseTransform     = transform.GetChild(1);
     LoggingManager.instance.AddLogColumn(rISACol, "");
     LoggingManager.instance.AddLogColumn(robotKCLevel, "");
 }
 private void Start()
 {
     // Initialize pose publisher
     goalPublisher = gameObject.GetComponent(typeof(PoseStampedPublisher)) as PoseStampedPublisher;
 }